It is apparently a deliberate design choice in Zephyr that C++ static constructors are called _after_ kernel and driver init, so you can essentially only safely use C++ in "application code".
I can say with 100% certainty this is the wrong choice.
About ready to give up on this shit.