I have been trying to learn programming for a long time. Admittedly, I've wasted a good amount of time trying to find the right language to start. I eventually came across Ada. I read all about it and bought into all the stuff that you've mentioned. I even spent a couple of hundred dollars on books for Ada. I eventually gave up on Ada as a first language. The reason.... I couldn't find a compiler, especially for openbsd, especially one that was actively maintained. The best I could come up with, was one that required a C compiler (GCC). Most of the websites on Ada looked very outdated and not a lot of tutorials for a newbie like me. Even the books I bought were outdated. My theory for why people don't use Ada is because C came out first and it was a simple programming language, and freely available to college students. Because of this, people started using it, making libraries for it, writing tutorials and books for it, and teaching classes for it in colleges around the world. The simplicity, free compilers, C libraries, tutorials, books, and classes brought in more people creating a hurricane of mind share. And the C language has been kept relevant as time passes by its users. This hasn't been the case for Ada. Ada came out roughly a decade after C and when it did, the compilers were proprietary and very expensive. Only big aircraft companies could afford the compilers. Thus it's growth in mind share was impotent from its beginning while C kept/keeps growing. This is my own opinion based off what I read and googled. Be sceptical about what I say as I'm no authority especially since I don't yet know how to program.
One more thing, NASA and the US government use all kinds of programming languages. It's fragmented in languages despite the so called standardization on Ada. I read one story where NASA had an expensive satellite in space that stopped functioning because of a software bug. Luckily they programmed it in Lisp. Lisp can be changed while it's still running. So they found the Lisp bug and sent the change and the change was instantaneous once the satellite received it. No compiling or rerunning the script/code necessary. Can you do that in Ada? (Note that question is a really deep question in light of all the advantages of Ada.)