I read somewhere, I dont recall if it was in this thread or not, that this problem doesn't exist if you connect a VPN using Cisco AnyConnect app. I installed the app, and couldn't setup the VPN for my purposes because, as I expected, you need to use ot with Cisco VPN equipment/router. HOWEVER... The first time I launched the app, it said something like "AnyConnect will make changes to the way VPNs work on your device. Is this OK?" and I clicked yes/ok/proceed, whatever the button said. Ever since this time, my VPN has not disconnected when going to sleep. I don't even have the app anymore, I removed it when I realized it wouldn't work for me.
If you are able to establish a Cisco VPN, then it will also auto-reconnect when you go from wi-fi to 3g, loose and regain a connection, etc. It is designed to keep you constantly connected to the corporate network. However, it appears part of what it does is change the VPN functions of iOS sothe VPN does not drop after 30 seconds of being in sleep mode. I have gone 6 hours with the VPN remaining connected through 30 min to an hour of sleep at a time.
I hope this helps others out there. Just install Cisco AnyConnect, run it, accept/allow the changes, and reply to this post to let others know it it resoved the problem for you too. Once you have got it working, you can uninstall AnyConnect and it will still work.
**I dont know if there is a way to undo this, so once it changes the VPN to persistent you cant go back to the sleep-and-disconnect way, but why would you want to?