Hi - I've been having issues getting Yahoo to push emails to my iPhone 4s (running 5.0.1) since I bought it a month ago. I did some tests and push has been working perfectly on my iPad (also running 5.0.1).
I compared my settings betweent the two devices and there was one difference. After making this change, push worked on my iPhone! I've tested in multiple times and it works great (2-3 seconds slower than the iPad).
Under Fetch New Data - select the schedule to "Manual". I had it set to Every 30 minutes and Push did not work even though Push was turned on. No reboot needed, it just started working.
Details are go to: Settings | Mail, Contacts, Calendars | Fetch New Data | Under Fetch, select "Manual"
Make sure Push is turned on.
Also, I noticed a big performance gain when I went from Show 200 recent messages to 50 recent messages.