Given just how much of a hassle it can be to support multitasking on the iPhone, it’s worth a quick mention that it’s possible to opt out of the whole thing.
All you need do is add this pair to your Info.plist
dictionary:
<key>UIApplicationExitsOnSuspend</key>
<true/>
Which looks like this in XCode’s plist editor:
Although AAPL harumphs that “[o]pting out of background execution is strongly discouraged”, for some apps it may make little difference, and save you not inconsiderable effort.