I was thrilled with gdnative and gdextension, but it's quite tedious C++ to write, and it still doesn't support opengl3.3.

Gdextensions are only for tight optimization or to embed something else, it's not really for anything else.

I wanted to make some game logic in C++ but it was not worth it. You must use godot allocator and .new() for everything...

Do people still have to use primarily their custom programming language for most work? That's my current understanding, is that the engine is primarily exposed to GDScript.

Seems like such a poor choice.

No: https://github.com/Vivraan/godot-lang-support

GDScript is the most tightly integrated into the Godot editor, but there are tonnes of language bindings that work just as well and call into the C++ API just the same. C# is officially supported and they just ported it in Godot 4 to use .NET 6 instead of Mono. I've also used the Typescript/Javascript module from a 3rd party in the past and it surprised me how good the dev experience was. I'd wager that most devs who want to use their preferred language with it are also probably people who don't rely too much on GUI tools and won't miss the few features that gdscript gets from being directly inside the editor.