This has been an issue for about 6 months now. Even swapped my iPhone 4S for a new one so it's not the device. I'll go all day without any emails pushing thorugh then I manually open mail and loads of emails come through from throughout that day!
I've tried everything, reset network etc. Checked push settings, phone restore.
Can any advanced users help?
Some good news to all having this issue:
I am running iOS 6 beta from the day it was published to developers, and the problem seems to be solved!
I too had a problem with mail.app which, if let open in background, would stop updating. Push would stop working. The workaround I had to use was to check the mail, and then close the mail.app completely (task manager, hold 'til wiggle, then "x" it). That way push would work normally (using the term "normally" very losely here).
I got used to it, hoping Apple would do something about it - and what do you know, it did!
As I said, I got the iOS6-beta1 as soon as they released it for developers at WWDC this June, and I left the mail.app running in the BG - and it continued to work! After a week it was still working great.
Two weeks passed by, and iOS6-beta2 came out. I have it for 3 days now, and the mail push is still working as it should.
So I guess we can mark it as "fixed". It's just a matter of waiting 'til September when iOS6 goes public (unless you have a developer's account) and then all of this will be history.
I'm running a iPhone 4 (Verizon) and iOS 5.1.1 As soon as I activated iCloud a few weeks ago, I noticed that my phone wasn't retreiving email sent to my .me account like it used to. I have to manually launch the email app to check for mail (which is annoying). On my phone, I have Fetch New Data set to Push and Fetch set to Every 15 minutes.