This is interesting. I unrooted to test things out before calling Sprint, and the problem went away. I was able to stay connected for an hour (where before I couldn't last longer than 10-15 minutes). Yay, fixed, right? So, I rooted again and didn't install any ROMs or anything, just rooted, and the problem came back.
So, I have a solution, but I don't like it very much because it means I need to stay unrooted. Anyone have any idea why simply rooting the phone with Unrevoked 3 (and doing nothing else) could cause calls to disconnect? I'd love to be able to root again, but I can't deal with a phone that randomly disconnects all the time.