FAsyncLoadingThread not running unless game is cooked?

Using 4.18.2, I am having a problem with World Composition blocking when loading levels, and debugging through the source code it seems FAsyncLoadingThread is not running. However I enabled Async Loading Thread Enabled in Project Settings/Streaming. This is very weird, any explanation?

Update: looks like FAsyncLoadingThread is not running if game is not cooked, why??? I have verified that when game is cooked async loading is working. But this should be working in editor too !!! Please UE devs can you please look into this?



bool FAsyncLoadingThread::ShouldBeMultithreaded()
{
    static struct FAsyncLoadingThreadEnabled
    {
        bool Value;
        FORCENOINLINE FAsyncLoadingThreadEnabled()
        {
#if THREADSAFE_UOBJECTS
            if (FPlatformProperties::RequiresCookedData())
            {
                check(GConfig);
                bool bConfigValue = true;
                GConfig->GetBool(TEXT("/Script/Engine.StreamingSettings"), TEXT("s.AsyncLoadingThreadEnabled"), bConfigValue, GEngineIni);
                bool bCommandLineNoAsyncThread = FParse::Param(FCommandLine::Get(), TEXT("NoAsyncLoadingThread"));
                bool bCommandLineAsyncThread = FParse::Param(FCommandLine::Get(), TEXT("AsyncLoadingThread"));
                Value = bCommandLineAsyncThread || (bConfigValue && FApp::ShouldUseThreadingForPerformance() && !bCommandLineNoAsyncThread);
            }
            else
#endif
            {
                Value = false;
            }
        }
    } AsyncLoadingThreadEnabled;
    return AsyncLoadingThreadEnabled.Value;
}