If you don't see the app in front of you, iOS will very quickly kill it if it has any background tasks.
It's a leaky abstraction, but honestly I like the implicit promise/guarantee between the scheduler and the user.
I only get annoyed when I want some batch task like uploading photos, but even then it's not too hard to leave the phone powered on and unlocked on my desk until the photos upload...