1 - The project was neither driven by schedule, well defined feature goals or quality. There's no way to tell when the project is done if there aren't clear metrics for at least two out of these three.
2 - Security is one of those things that will never be done. Microsoft stopped progress on Vista to focus on security. So much time was spent looking at security that it became a feature area of focus. Even if 10 years was spent on security there is always something more you could do. Once security is a feature it's hard to tell when it's 'done'.
3 - Little incentive to ship ontime. Large organizations that purchased service contracts for new versions of Windows have already paid their money so there is little financial incentive to ship a new version of windows. The upgrade market is relatively small compared to the OEM market. Missing a release in holiday '03, 04', 05', and 06' hurt OEM's more then it hurt Microsoft.
4 - Shipping a dud is worse then not shipping. A release as big as Vista needs to be solid. This is especially true since the product cycle is now approaching 6 years.
5 - No competition biting at the heals of the OS market. Competition drives innovation. Microsoft does it's best work when it's trying to take over a new market. (Better at offense then defense) . With Apple now shipping an x86 compatible OS the preasure is now rising.
6 - A good product release should have a theme. The theme is the primary reason that people are excited or interested in the product. The theme helps you tell the story. A good story has a beginning, middle and end. A product story is the same way. You have a key theme, and this theme has a key feature that begins your story. Sub-features help with the middle and end of the story. Once your product has a compelling story the team can rally around the design and bring it to completion. One of the main reasons that Vista is so late is that the story characters changed at every scene. At first it was about a database file system, then it was about security, then it was about a side-bar feature, then it was about gadgets, then it was about Avalon... But don't forget about IE7, RSS, and assorted other themes.
The technologies are great and I have a lot of respect for everyone over in Redmond (hey everyone.) However to have a compelling OS release and do so in a reasonable amount of time the product needs to be about something important. Only then does it become a priority to ship it.