Overall, Windows actually works pretty well. It seems like most of what I find most frustrating about this OS can probably be fixed with a few dozen lines of code. It makes me think that either I'm a very unusual customer or the software architects have some peculiar blind-spots.
1. 90% of the time when I want to do an upgrade install (used to be called repair install) is because windows will only start in safe mode or won't start at all. Since you no longer have this option when windows doesn't load completely, it is rendered almost completely useless.
This may just be a side effect of re-defining the repair install as an upgrade to the same OS version, but if it IS still possible to run this process before completely loading windows then I would very much appreciate the editing of the appropriate if/then statement to re-enable the most powerful self-repair feature windows has ever had.
2. When Windows fails to start, it gives messages like "unhandled exception error". This is probably really useful if you already know exactly what function is being called by which program when it causes the system failure.
There is a neat startup option I've occasionally seen in Windows where a console window pops up that shows all the drivers being loaded one by one. If there was a way to make it save each driver name to a file just before it starts (and maybe a second text file to list drivers you DON'T want started), it would have probably saved me close around 20 hours of troubleshooting this year alone.
3. "Windows is automatically shutting down to install updates...". Sure, there were ways to disable this "feature", but whenever one got too popular it would eventually stop working. It was actually fixed in Win10 (possibly earlier...I upgraded from 7) and they even added a nice interface to schedule updates at your convenience. Thank you, windows team.
And finally, a suggestion: Don't be so quick to suggest that people just re-install everything when Windows fails to automatically fix itself.
As far as I know, there is no easy way to automate Windows OS & program installation (though I'm guessing it might now be possible as long as all your software comes from the Windows store), so not only will it take most of a day to get everything up and running (assuming you only have a few extra software packages installed), but you are mostly glued to your desk pressing "OK" occasionally.
Now, more and more software packages don't even give you an option to save local copies of the installer. In most of the US, this could mean several additional hours for a size-able program. Many Microsoft developers may not be aware of this, but the best internet most people in this country can afford is the "up to 10mb" cable and DSL services, which will give you an actual average of 1mb to 7mb (depending on which neighborhood you live in), often with large lag times and frequent disconnects causing large downloads to fail halfway through (unless you want to download the site-specific download manager which may or may not have "features" that make it functionally indistinguishable from a virus).
Its not that this isn't a good thing to do anyway every couple of years or so. I just feel that someone should be required to download & install Windows, several IDEs & cad packages, and a half dozen multi-gb Steam games on a unreliable 5mb connection before they are allowed to suggest it as a solution.