FTextureCacheDerivedDataWorker::Finalize() has a check(IsInGameThread()); that is asserting when building lighting with lightmass

void FTextureCacheDerivedDataWorker::Finalize()
// if we couldn’t get from the DDC or didn’t build synchronously, then we have to build now.
// This is a super edge case that should rarely happen.

If I comment that check() out, everything builds correctly.

From the call stack I had, it seemed that it was making a bunch of threads to encode the textures.