How come it took Bill Gates five years to revamp his flagship bunch of code? Was it laziness? Procrastination? Perfectionism? Did Bill mislay his copy of Getting Things Done?

One straight-forward answer is that in trying to compete against Apple and internet-based companies, in trying to anticipate whatever the future may throw at the PC, Microsoft ran into problems with Vista’s code. The geeks made it too complex. Senior executives stepped in and refocused Vista. And shipping got delayed.
Microsoft milks the cow one last time, Independent
After delays, Microsoft in party mood for launch, San Francisco Chronicle

Gates, not surprisingly, gives a positive spin to this. Five years is a worthwhile investment; it lays the deep foundation for incremental improvements down the line:

Well, we haven’t been idle. During that time, we had many Media Center releases, many Tablet releases, lots of things like desktop search. We had a security-oriented release called XP SP2. But, we also had to invest in the layering of the operating system, so that we could be more agile in the future, and have things at the higher layers, like the browser, release on an every-two-years, or even in some cases every-year-type basis, whereas the deep things like the scheduler, the file system, you don’t want to change those more than every three years or so, because they affect compatibility. So you want stability in those pieces. So we invested a lot in layering and security.
Bill Gates, Q & A, Business Week Online

But maybe Scott Rosenberg has the better big picture answer. He doesn’t quite say it, but it’s there, bubbling under with a bunch of proximate causes: free coffee and pizza and a big salary; and it’s just too easy for the guys at Redmond to get into the flow, to succumb to the temptation of trying to create the one, perfect, transcendent program:

… unlike computer hardware — the microchips and storage devices that run programs — software isn’t rooted in the physical world. It’s still written, painstakingly, line by line and character by character; essentially, it’s all made up. Software straddles the wide-open realm of the imagination, where it’s created, and the fixities of everyday reality, where we expect it to work. And so far, it has proved uniquely resistant to engineering discipline.
Scott Rosenberg, Washington Post