That wasn't as big a problem when the iPhone was the only phone of its class, but now, Android and WebOS have shown up, flaunting post-iPhone touch interfaces and being able to play your Spotify stream while you browse the web, and even hoary old dinosaurs like Nokia's Symbian are being brushed up and advertised as being able to multitask. Sure, a badly-written app there could drain your battery in no time, but that's beside the point; if multitasking works well enough (i.e., doesn't fail catastrophically often), Apple's system will look decidedly dated and overly conservative, and whatever Steve Jobs' aesthetic sensibilities say about it, Apple will have to put it in or risk becoming an also-ran. And, being subject to Steve Jobs' perfectionism, Apple's solution will have to not only bring in multitasking but do it without the compromises other systems have.
However, there is a rumour that the next version of the iPhone OS will do just that; i.e., will allow third-party developers to write processes that run in the background in some well-behaved way whilst managing to avoid the pitfalls of declaring a free-for-all.
I'm curious as to how they'll do it (assuming that the rumour is true, of course). My guess is that they'll focus on use cases such as processes needing to run a carefully constrained background thread, and communicate with it from the single-tasking UI process, and allow them to do this. Perhaps it'll use Apple's Blocks extension to C, and possibly a lightweight scheduling technology related to OSX's Grand Central Dispatch. That way, a background music player will be able to fetch and play audio until it is stopped or diverted by the UI (which can come and go).
Please keep comments on topic and to the point. Inappropriate comments may be deleted.
Note that markup is stripped from comments; URLs will be automatically converted into links.