Multitasking: The simultaneous execution of more than one program or task by a single computer processor.
Perfect.
iOS developers can use any of the resources available to them to have any of their applications fit the definition.
No they can't. The post above yours is one of the best examples of this. IM applications cannot run in the background using any of the available APIs.
email Apps are another good example. They can't check for new email in the background. You need to rely on a server to send a push notification (which is costly and has security implications).
You say that the fast app switching API doesn't provide multitasking abilities
I say that because it doesn't fit the definition of Multitasking that we and everyone else in the universe believes in.
But still, what good is it to have a weather app running constantly in the background in a running state? How about a game? There's no reason why those apps need to be in a running state.
I never said that those Apps needed it or that the default should be to run 24/7. I also did not say that the idea of suspending Apps is bad feature.
The simple answer to the OP's question will always lead back to one answer, no matter how it's looked at; battery life. Apple doesn't want to sacrifice battery life, which in turn becomes a user's experience of the device, for non-iOS multitasking like process control.
While it's true that Apple wants to preserve battery life, they said that when they weren't allowing third party Apps on iOS. They also said it when they didn't allow multitasking at all.
Over time, I hope that they introduce more flexibility in allowing developers to do things that customers want.