How I think background apps will work on iPhone OS, a short summary
Applications may include a UIless daemon. This would be subject to specific approval from Apple, and be categorised by what it does (for example, plays audio, receives time-sensitive notifications [e.g., VoIP incoming call alerts], transfers files).
There would be explicit user authorisation for keeping a daemon running once an app terminates: similar to the “Do you want to allow Fred’s App to access your current location?” prompts now, with an equally similar Settings menu listing the applications you’ve allowed to do background stuff and the ability to stop them.
There would be strict rules about what a background daemon could do, and there would be significant caveats, especially with respect to the OS’s ability to unceremoniously kill a daemon for any reason it likes, such as low-memory conditions or the launching of certain applications (such as games).
However, some possibilities open up: Apple could permit [music-playing] daemons to hook the pop-up iPod controls, allowing play-pause/track controls to function with Spotify, for example.
The approval process for all of this would be horrible for developers, I suspect, in part to actively discourage the use of background daemons so that they’re only employed if absolutely necessary. There are situations where the only way to accomplish something is through a background process, but for the other 90%, there’s the notifications framework. Neither is perfect, but Apple really wants to avoid having the kind of system where an application like “Advanced Task Killer” is remotely necessary.