> NVIDIA just crashes in swap chain creation under Wayland
I'd say ignore Nvidia, their Wayland support is junk (until nouveau+nvk catches up). It's not a Wayland problem, it's Nvidia problem.
For dealing with CSD mess, there is libdecoration that SDL started using.
In general - just use SDL for for DE integration, instead of trying to reinvent the wheel.
Wayland is not broken. But if you are trying to reinvent the wheel of supporting it from scratch, you'll be hitting a lot of things that need to be implemented. So as above, don't do it. Others already did it for you.