I wonder if some sort of hybrid of the current push notifications and GCD might prove a workable stopgap? I.e., apps can register asynchronous event listeners while running, and push notifications can trigger those to give the appearance of multitasking.
If the background listeners/workers are heavily resource-constrained and subjected to limited API access, you might be able to maintain most of the battery life and performance advantages of the current single-task model, while still allowing apps to perform some amount of background processing. Any "heavy lifting" involving a full app UI, the GPU, or outbound network access could still require user confirmation and a task swtich.