How to change level async

There are 3 levels in our project: TitleLevel, LoadingLevel, Stage1Level, Stage2Level…etc.

I can use OpenLevel to change level from TitleLevel to each StageLevel. But if each StageLevel is bigger, game will looks like get stuck.

I saw there is a feature called Level Streaming, But it base on a single persistent level.
(for example: Stage1Level is a persistent level, consist of Stage1LevelPart1, Stage1LevelPart2…etc)

I think add all levels (including TitleLevel, Stage1Level, Stage2Level…etc) to a single persistent level is not a good solution.

So how can I change level async without put all of them in a single persistent level?