Is there any way to control how/when the 3G radio goes to sleep?
Is that, in fact, what it is doing?
JuiceDefender allows you to turn your radio on and off and to set triggers for this.
Tasker will also do this.
One thing to note, the "3G" radio is the same radio that you use to make voice calls, at least it is on CDMA phones. By controlling the APN you can turn on and off your 3g data and reap gains in battery life without turning off the radio.
I'm not 100% on this but I believe for phones that aren't yet on Froyo (2.2) an app is required to control the APN like APNdroid or QuickSettings. I'm not sure how well these work with the automated trigger apps mentioned above.