On the macOS side, I think Apple has been carefully planning this for several years now. Dropping support for 32-bit and non notarized apps last year were just the cherry on top - these should have already weeded out most of the inactive developers.
Since the Intel transition nearly 15 years ago, software toolchains have matured enormously. In 2005, writing parts of your software in native x86 assembly was reasonably common. These days, it's unheard of - compiler optimization has improved to the point that you won't find a single line of assembly in desktop software; there's simply no need for it. Just about anything that runs on macOS is compiled through Apple's Xcode toolchain. Without esoteric assembly to port over, getting an x86 app to run on Apple silicon will be as easy as clicking a button. Personally, I think things will go very, very smoothly with the transition on macOS.
Windows virtualization is a hairy one though - by the looks of things, we won't have x86 virtualization out of the box. It's definitely theoretically possible to host an emulated x86 virtual machine, but I really don't think Apple will support this; it would likely to be up to a (very) ambitious third party to implement. Chances are we won't see it. Thankfully, Windows for ARM already exists, so we can likely run ARM windows in a virtual machine. Of course, this doesn't solve the Windows x86 app problem. Microsoft hasn't been carefully planning for an x86->ARM transition in the way Apple has, so the state of ARM support in the Windows ecosystem is a mess. Like you said, we'll probably be screwed on x86 Windows games and professional apps, which is a shame.
On the bright side, we'll likely gain a lot of performance in native Mac apps, and the games and pro apps with Mac support should run very nicely.