I've played around with Singularity...a managed kernel is of great interest to me both from a stability and performance perspective.
My thoughts are quite simple: Singularity and Midori WILL become the future Windows kernels...but we're really talking 4 or 5 version's time. Remember that Apple made the move to a BSD-based kernel with the release of MacOS X in 2000, and merely provided an ok way to run MacOS 9 and prior apps through their Classic emulation layer. Since this essentially ran code natively on the PowerPC, Intel-based Mac's cannot run pre-OS X apps. There are also some issues with apps that use full-screen drawing on the edge of the screen and those that access specific hardware without checking if it exists. Outside of that, it runs a good 99% of the apps.
If Microsoft were to throw their weight behind Mono, as they have thrown their weight behind Moonlight, they could end up with a very extensible, flexible .NET layer that would allow them to provide backwards compatability with ALL .NET apps from v1 upwards. A managed kernel will provide fantastic performance improvements for .NET apps, as CIL code could be executed on-processor almost. Inherent garbage collection would also plug memory leaks.
My suggestion: if you want forward-compatibility with future kernels that will be based on Singularity's concepts, stick to .NET. The more bleeding-edge you keep your apps (think ADO.NET Entity Objects, PLINQ, WPF) the more likely your app will be able to drop-in-and-run on future kernels.
And so the kief looked and lo, it was kief.