This paragraph definitely caught my eye:
The problem, it turns out, is that the .NET builders did not give much thought to providing many of the essential basic building blocks that operating systems construction crews need for their work. Interpreted code has some minor performance issues as well (note that there are many ways to overcome this often overly shrill critique). But the main problem was that the Microsoft OS guys are big C++ users. Getting them to switch over to C# was for these reasons not in the cards.
Me:
I'm not so sure how to build an OS off an interpreted language anyhow. I could imagine having the base functions in Vista be in C++ and then have most of the layers on top written in the type safe manner of C#. It's definitely an interesting question to bat back and forth.