Because Verizon closes inactive sockets after 5 minutes. Push has to rely on inactive socket, until the next heartbeat is sent, usually should be around 20 minutes to have the minimum impact on battery life.
So, push on Verizon network is like polling every 5 minutes, because ActiveSync has to reconnect each and every 5 minutes.
To make this mess even messier, AS's default heartbeat is 8 minutes. So if a message arrives between 5 and 8 minutes within a heartbeat, it won't be pushed to the phone in time, because the connection has been closed by Verizon at 5 minute.
Your area may be different, you can check your phone's actual heartbeat in Windows\ActiveSync, in the Ctrl0 and Ctrl1 log files. I bet you'll see 480 (8 min). Then you need to change the MinHeartBeat in registry from 480 down to 300 (5 min), or you won't have reliable push. The registry key for heartbeat settings is: HKCU\Software\Microsoft\ActiveSync
From what I read, Verizon is not the only one does this dirt, AT&T is the same.
No wonder my phones (not just Diamond, all phones) give so bad battery life as soon as I enable push, 7 days vs. 1 day. Because they are not actually pushing, but polling at a horrible interval, 5 min! I've tried all ROMs I have downloaded, all are the same.
I hate this. You pay big bucks to these carriers and this is the kind of service you get.
If you want to know more about this matter, read these links about ActiveSync direct push. Note that IMAP idle is the same, you have to use the latest xImapPusher that addressed this 5-min timeout issue (see my other thread).
http://littlesandpit.blogspot.com/20...ally-work.html
http://msexchangeteam.com/archive/20...03/424028.aspx
http://technet.microsoft.com/en-us/l.../cc182270.aspx
http://searchexchange.techtarget.com...268252,00.html