Yep, I think this is it. I can see in the code where it’s failing. (Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:2495)
It looks like it uses the thread as a kind of global context for constructing UObject-derived classes. So when you create the new object it’s saying that you’re already in the process of constructing an object.