People who have never experienced Microsoft product development find it difficult to believe that their success is based on the tireless efforts of an astonishingly brilliant group of engineers. That's perhaps why Microsoft's competitors consistently underestimate them. As for Java, it was never anything but marketing hype. Cross-platform architectures have been tried many times over the decades, and the problems remain the same: speed, bugs, and inability to exploit one particular platform's unique features.
Killing "committee designs" was one of my favorite pastimes when I was lead developer at MS. They invariably stunk. There's a huge gulf between what customers really want and what a committee interviewing a focus group comes up with. The best way to engineer a product is for a really smart engineer who actually uses the product to mastermind the design. Microsoft's best products have come out of this process.
As for the bug list that invariably gets leaked with the release of each product, the explanation is pretty much dead on, although when you think "bug" you may be thinking "crash," which is likely not the case. The kinds of bugs that typically make it into a shipping product have to do with compatibility, speed, visual appearance, and just plain poorly thought-out functionality. Microsoft maintains an enourmous tracking database during product testing and each bug report is examined for severity and priority before being considered for deferral.
The main problem with W98 was third-party device drivers. Since Windows is an open standard, any hardware company can plug in special software to run their modems, printers, network cards, etc. The slightest bug in these, because of the Intel architecture, can cause the whole computer to crash. Of course there are some bugs in the MS internal software too that cause crashes, but the big problem is the proliferation of third-party software. W2K is supposed to fix that with much more stringent testing requirements. We shall see.