Shaun_Max My personal experience is limited to Android export only and I will share it here. For other export platforms or features you can get involved with the GMS community, which by the way is one of the most friendly I've been part of....
My overall opinion about GMS is very positive. You can export to/compile for Android platform either with VM (virtual machine byte code interpreter similar to java, swf, etc) or even better with the YYC (yoyo compiler) which it compiles natively to the Android platform with very good performance. My games are based on my animated series on YouTube, so I want FHD crisp graphics, so my favorite resolution for my games is 1080p. I never had any performance issue (60fps constantly) even with older devices with Android 5.1 (7 years old devices) and with almost no optimization on my part. Just in a single project I added an extra SD resolution because it was a fast paced game and I wanted to target Android 5.1 too. About setting up the Android export, it is easy but it is important to follow to official guide. After setting up the Android export, it recognizes with a single click any physical connected android device or emulator from android studio. It supports 4 architectures arm7, arm64, x86 and x86_64. It can create both .apk and .aab files.
About the native extensions. You probably will not need to buy any native extension for essential functionalities. The official extensions are free and some of them are: Google play services, IAPs, AdMob, Push Notifications, extensions for amazon, for apple and more...
To create your own native extension is fairly easy (way way easier than making ANEs) as long as you have some basic familiarity with java. You do not need to precompile the java code. You just import it and declare the "glue API". Unfortunately, at least since the last time I checked, the extension creation is documented, but only to get started. I managed to create a more advanced extension by peeking into the android runtime java files. There are also many 3rd party extensions which many of them free. The paid ones are usually very cheap (under 5$-10$) and usually with very permitted license, aka buy them once and use them in unlimited projects...
The programming language is the "GML" (GameMaker Language), a proprietary language for GMS. While it may sound alien, it is very easy to learn and generally very easy to get started with GMS. When you familiarize yourself with the IDE and the GML, you will be able to prototype your ideas very fast and generally have very rapid development.
Recently opera bought yoyo and gms, so some significant changes happened. They used to sell permanent licenses but they switched to sub model which is fairly cheap. There is still possible to get a permanent license through steam, but this can change at any moment. A very positive change is that they removed the trial limitations, only restricting the various platform exports (desktop, mobile, uwp, html5, and consoles). You can use the 100% of IDE for free exporting only to special html5 format for the latest gaming opera browser. That means, you can download it without any cost and follow a couple of beginners tutorials. This will be the best way to see if GMS is the right tool for your needs. When I decided to try GMS, I got convinced and bought the mobile license in less than a week and I am still very happy about that decision...
Finally, just to note that I am not affiliated with yoyo, opera or gms. I am just a happy customer. I briefly covered my experience. If you need some more info let me know...