Eh, I've decided to stick it out and give newforms more of a chance. I've been writing forms that override different functions of the newform depending on what I need. I've also created a few custom widgets. Since I'm a fairly lazy programmer I've been slightly annoyed that I'm writing so much custom stuff. Oh well.
I think djangosnippets.org saved my relationship with newforms. I was able to find some pretty nice newform bits there and if you're working with Django, it's totally worth checking out. Scriptaculous also helped save newforms with its Event.observe() - a quick, browser-compatable way to add listeners to HTML objects.
