My comment regarding it prefering 3g is based on the following. I turned on my phone and got wifi reception at once, the bz.push.apple.com service then started a connection using WiFi. Then a minute later my cellular reception was up and running and the connection then closed on wifi, was gone for one iteration (5 sec on netstat) and reappeared on cellular. So with no cellular reception it started on wifi, cellular appeared alongside wifi and it jumped from a working wifi to cellular.
This is a massive bug in IOS on its own. If more of you guys test it and it turns out that regardless of whether the apple.push.com connection is stoned or not, by design the connection will always revert back to cellular if wifi is available we will be dealing with stand alone draining bug on its own.
I don't think I'm wrong to say nothing should be using or keeping cellular data radio active when Wifi is turned on. I don't see any excuse for it, any reason for it, in fact if anyone can think of a single reason why cellular data should be active once wifi connection is established I would still push apple to provide additional switch in "Settings" - something like "turn off cellular data when wifi is enabled".
The times that netstat are showing for the connection are also pretty off. Sometimes showing longer idle time than duration, start time newer than last active etc. Right now mine says duration 44m, idle 48m start-time 1348 and last active 1308 to give you an example.
If I understand, duration and idle are being added up - it's not constantly active for 44minutes, then idle for 48 minutes, and it's not 44 minutes within 48 minutes, instead each times transmitting occurs it's added up to duration, and the time between active transmissions adds up to idle time. There is however some sort of issue in IOS since 4.3 update which makes socket times reading unreliable. It's almost as if IOS was treating those sockets as persistent sockets and was providing cached times from last run. Interestingly enough, it was also the first IOS release to have that "curious" high usage times battery drain. Netstat developer also mentions that he wanted to add background monitoring feature to be able to see what's happening while the screen is off, but it was rejected by apple.
Now what makes me wonder is the fact that apparently most people don't have this problem with battery, which is strange considering it seems to be software and an underlying function "calling home".
It would require deeper and more detailed research, something that isn't possible without the bragging game to some extent on public forums. First, I think a lot of people are willing to accept 1 day stand by as "great" while using the phone to absolute minimum.
Secondly, I think the bug gets worse the more actively you use the phone and the net. So basically new and "delicate" users are less likely to experience it to the degree someone who depends on the phone to be proper "smart" device and hammers it all day will do. So, with a pinch of salt, you would need to go through all of those pictures of "marvelous" uptime and one by one find out whether the "Usage: 7 hours" was actually plausible. Was that person really playing angry birds or browsing net for 7 hours, because if they weren't their phone is still leaking and adding to usage, it's just that whatever daemon gets stoned on their phones is not as active/draining as on our phones, or their "snitch" data to submit is perhaps much smaller and drains less battery than the one that opens sockets and transmits for 7-8 minutes on my phone. As an example.
What also seems strange to me is that people have had this problem, returned the phone for a new one and the problem was gone. This suggest that the same userpattern for one phone did not mimic the problems on anther device, which is strange if the software bugs are triggered in certain settings.
This could be the "reset" cure, as suggested/posted many times before - reset network settings/reinstall as new/get new device - cached data not on the new/reset/reinstalled device equals either less data to submit, or maybe, it's chicken/egg scenario were it's the "persistant socket" issue, that creates misread times in netstat causing "stoned" connections, once you reset network or start on new phone there is no cache etc. In any case - I started with new phone, new setup, my phone became really bad, really quickly, it was better after full reinstall, became gradually worse, etc - each fix, as soon as I start using the phone like it's meant to be, the bug comes back, to the point where I just reset the stoned connections via reboot or disconnecting cellular data for long enough to reset them.
I would love to hear from people that have returned their phones, did it fix the battery problem or did it not? As I've said I've returned one and this second device is just as bad. Should I bother waiting a week to get a new one? (I have to send it in, then wait for a new one to be sent to me and it takes about a week).
And most of all - if replacement phones fixed it, was it fix for good?