I found that calling NewObject outside of GameThread could lead to termination becuase it has special check for the running garbade collection.
check(!IsGarbageCollecting(), TEXT("..."))
This leads me to suggestion that I can call NewObject only on GameThread. Is it true?