What's the correct way to use/initialize UObjects?

I suggest placing breakpoints around the code for [NewObject] where failure may happen.

I use a BP function library to create my UObject classes, Never had an issue.

HTH