Unity is suffering because it can't find a way to make DOTS/ECS first class without completely redoing basically everything.

That's my biggest complaint with Unity at this point. So much is built around the GameObject implementation that when you start using ECS you can feel the friction - you're writing a lot more code, you're doing things in a way that feel like swimming upstream, and there's less support + documentation.

How does Godot compare? Are highly threaded features out of the box? I would use Unreal but the C# Unreal interfaces I've seen are very immature.

Godot also seems to be built in a way that creates friction for ECS style game logic. It's built around scenes that are trees of nodes that each have associated behavior and signaling/message passing between nodes.

There is an ECS port for Godot named Godex, but it isn't hugely mature:

https://github.com/GodotECS/godex

I haven't used it, though I've been curious about it. As far as better options for ECS game engines go, I'd go with Bevy (personally), but you'll have to learn Rust (which I'm a proponent of anyway).

https://bevyengine.org/learn/book/introduction/

But both of these are still in "Beta", if that's even the proper term for their development cycle, at this point. They work, technically, but they could use some help, to my understanding.