the editor is WAY different than packaged. it has a ton of overhead.
i know for certain that you can mark individual data layers as blocking or non blocking (which is not the same as bg thread).
im not certain about the way in which the loading works. it’s mostly async. but there could be things that need to be loaded on the game thread. though i’m not 100% sure.
i’m quite confident it’s async since i have a plugin that shows a loading screen when activating datalayers and i had to add extra code to actually wait until everything is loaded.
(but async does not necessarily means on the bg)
watch this talk, it covers your needs. stutters can have many different origins.
specifically in terms of loading, ari has a section where he explains it a bit more, and gives some suggestions.
there are variables that you can set to tell the engine to load staggered, and call beginplay staggered.
there are recommendations as taking care of references and how many things a certain actor loads.
if one actor in particular loads a bunch of things, it might take too long and stutter.
otherwise the engine can load X amount dynamically until it runs out of time on the frame and keep loading next frame.