Here is my Quora answer. Please bear with me for the long answer. I would be greatly happy if it can help you.
[SOLVED]****FOR whoever want to update your windows 10 from version 1909 or older -----> 2004/20H2/21H1 **** WITHOUT CLEAN INSTALL ******
A few days back (May 2021), I was trying to update my Windows10 version1909 laptop to 2004 and subsequently 20H2, as 1909 reached the end of service (May 11, 2021). Up to these many days, every time I was trying to update windows by going into the settings, it was failing to install and it was telling your device is not ready even though I fulfilled the minimum basic requirements of 2004 and 20H2 (1GHz CPU, 2GB RAM, DirectX9.0., WDDM1.0, 32GB free storage). My update failed about 20 times- I did apply all the fixes on the internet, youtube, Microsoft and windows10 forums. I tried numerous times with both windows update assistant and media creation tool. I was hopeless to the point that I wanted to freshly install but then I had to install all the installed software for my PhD research purposes which would take me more than 1 day and my all personal settings would be gone.
Then, I found this tool - IT WAS A LIFESAVER TO ME!! (link below)
I ran one update using windows update assistant and it failed at 37% without any error code. I ran this tool and it showed that I have a Conexant made Realtek HD audio driver. I looked inside Realtek folder and found one Realtek HD audio driver (.exe) made from the publisher Conexant. I deleted the full folder in c:\programfiles\Realtek and uninstalled the device by going into device manager (under sound control). I even uninstalled display drivers. I didn’t do any restart of my PC at this point, as then the drivers may again be installed back. Now I restarted the update using update assistant and it went past 37% but at 56% again it failed! Now the SetupDiag tool told me that the location of wimmount.sys file is not there in E:\ E:\macrium folder. I installed macrium reflect long back and uninstalled al also, but it permanently damaged my registry. By a google search I found this page and applied the fix.
I changed the path in the registry. VOILA!!! Now my update went past 56% and it completed within 1 hour!! I got 20H2 Windows10. Immediately, next next day I got 21H1 update too. I wasted my 2 days completely behind this windows 10 update!! I felt like I won a war!!
*****MY SUGGESTION*****
If a windows update fails, use this SetupDiag tool mentioned above to know the real reason and fix it. Just save the .exe file in some location and run it - one results.log file will contain all the information at the last. It is better than trying all the youtube and Google remedies. It will save you lots of time. I would also suggest seeing this video, it helped me.
FIXED Can't Update Windows 10 20H2 - Update Stuck at 31% 61% or 99% | Solution - YouTube
I would also suggest keeping all your important files in the drive other than "c" (plus an extra backup) before running update assistant and don't forget to keep my settings and apps.
N.B.: I didn't like 20H2 much but the 21H1 is really snappier and faster as well as the most stable version of W10, I feel with great security improvements. Go get it!!
And finally, Shame on you MICROSOFT that you don’t show the detailed error to the user once an update fails!! Leave alone fixing. An error code of 0x80070003 can be because of many reasons. You could not give a proper solution to the Conexant made audio drivers also. Even Sennheiser used conexant drivers 2 years back.
Update should be flawless, not like this - winning a war!!