Since that Mangod thread was DOA, here's what what I posted in it concerning multitasking.
Went through a few session videos and here's what I can understand about their multitasking implementation.
There are four major components of it: fast app switching, background agents, local notifications, and background transfers.
The easiest way to understand this is to compare it to iOS since the two are very similar so that's how I'll be explaining it. Keep in mind that there are some unique differences (for better or worse) between the two which I'll explain along the way.
Fast app switching and local notifications are mostly the same as how it's implemented in iOS. You can back out of an app and instead of the OS clearing it from memory like it does now, Mango will cache it and resume to where you left off if you start the app again.
Local notifications (Microsoft calls it background notifications) are similar as well in that third party apps can now schedule an alarm or reminder at a future time without needing a remote connection to the cloud (which are push notifications).
The next two, background agents and background transfer are where the two start to differ. Background transfer is exactly what it sounds like: foreground apps that are requesting or uploading data can continue to do so after they're exited to the background. Its implementation is very similar to the Marketplace in which downloads are limited to <20 MB over the radio and >20 MB over Wi-Fi. Uploads have a 3 MB limit.
This is actually very different from what Apple did to solve this facet of multitasking. Instead of making a background transfer service as Microsoft did, they allowed apps to request additional time (up to 10 minutes) to finish whatever operation that the app is currently doing. iOS task completion basically solves the same problem of finishing network tasks, but also allows apps to finish local tasks like saving user data. The downside of course is that you're limited to a finite 10 minutes to finish a task, whereas I don't believe Mango's background transfer service has a time limit.
Last one up are the background agents. Everyone knows about audio so I'll skip that and move on to the much more interesting general agents. They've classified two different types of general agents: periodic or idle.
Periodic agents are limited to run every 30 minutes and for a maximum of 15 seconds. Implementation would include apps that don't need long-running network access to sync or quickly download new content.
Example: An RSS or Twitter app could request to download the latest headlines or update your timeline every 30 minutes. iOS 4 can't do anything like this (scheduling of short background tasks) so it's pretty intriguing. You have to actually open up your RSS or Twitter app and let it download new content. Sure push notifications can notify you that you have new content, but they don't actually download them. Kudos to MSFT for expanding on this.
You can also control which apps can run periodic agents or not in Settings.
The other type general agent is the On Idle agent which will only run when you're connected to power and a Wi-Fi network. Microsoft gives the example that the most common scenario for this is during nighttime when its charging and connected to your home Wi-Fi. These aren't limited to just 15 seconds like periodic agents but instead have 10 minutes to finish heavier things like downloading big podcasts or Kindle books.
So, what do I feel that's missing?
Persistent network connections for IRC apps would have been nice. iOS suffers from the same problem but iOS developers kinda/sorta work around this problem by using task completion to keep network (socket) connections open for 10 minutes at a time. Not a solution, but a workaround.
Background VoIP would have been welcome. This again relies on a persistent socket connection. Background location/navigation would have been great too so navigation/GPS apps like Navigon could continue tracking and giving directions while in the background.
These problems can actually be easily solved by opening up on-idle agents to run outside power/Wi-Fi, but I don't think it'll happen any time soon as that kind of defeats the point of what they're trying to do. (save battery life)
Overall, I'm pretty satisfied because they understand that you can't just leave apps fully running in the background and let the battery drain. Sure, I have some reservations but they've made good progress for a 2.0 release.