More secure languages and APIs can only win if they are both easier to use and offer the same features.
The problem at Microsoft is that what Office and WinDev want, drives the whole business no matter what, those "serious regressions, be it usability, features, bloat, or other things" get fixed, if one cares enough to make it happen.
Speaking which, Office now is an heavy user of JavaScript, less perfomant than .NET, because it needs to be in the cloud.
Whereas Windows, while king of the desktop, is undeniable that it lost the backend to POSIX clones even if we consider MS shops with IIS, where languages like Java and Go dominate.
Also apparently PWAs are cool now as fight against ChromeOS, which from performance point of view are much worse than those former Win32 alternatives.
If by some minor miracle a C# or Java GUI app is not slow, then it will use a ton of memory. A whole OS of such apps would be a nightmare.
So since Vista all major Windows APIs are COM based, not always surfaced to .NET, and we are expected to just go through books like ".NET and COM: The Complete Interoperability Guide" and do the needful ourselves.
WinRT as introduced in Windows 8 was then the full reboot, with .NET metadata taking over TLB files (COM type libraries) and introducing a new base interface IInspectable.
So the long term vision pursued by Synofsky, was that .NET Native and C++/CX would take over with COM fully replacing .NET.
Naturally it all failed down during the borked execution, and now you still have devs pushing for C++/WinRT, the C++/CX replacement, with ATL like tooling as "modern". Maybe it is modern given the tools that they are used at WinDev, I guess.
Ars even has a nice article how this reboot took place,
https://arstechnica.com/features/2012/10/windows-8-and-winrt...
And anything performance intensive was done in the NDK anyway.
All of this because of Java.
Those improvements are exactly what WinDev sabotaged in regards to Windows.
Also in case you have forgotten, Objective-C and Swift are also managed languages, check chapter 5 of Garbage Collection Handbook, or any other CS reference in automatic memory management algorithms.
Easy, every single time .NET team does some advances into that direction, it gets sabotaged by WinDev and their C++ love.
XNA vs DirectXTK, .NET vs COM/WinRT,...
Windows could have turned into something like Android, with managed userspace and a very constrained native layer for restricted use cases, naturally WinDev cannot let that ever happen.