I don’t think there is a general answer that applies to every situation. Push means that your phone is connected to a server at all times and as such will know when there is content available for download. Fetching only connects in set intervals and will download all the available content in one go. If you receive lots of emails and events, push might actually be worse for your battery life. Conversely, if you don’t receive many emails or events, too frequent fetching can be bad for your battery life because your cycles will go to waste. Short intervals with fetching like 15 min are generally not a good idea in either case and I would only recommend that if push is not available and you need real-time notifications.
As for provider, I don’t think it matters all that much. As iOS Mail doesn’t support a standardised method of push aside from Exchange ActiveSync, I think you will probably be better off by using iCloud push, because I think that Apple uses the same push servers for all your other notifications.
I personally set my phone to fetching with a 1-hour interval. I don’t need so frequent email notifications or updates.