I was hitting simplar problem of the player always falling through the terrain for a streamed level.
In the level bluprint for the persistant map, I was spawnwning my player character. The problem is, even in play in editor, the player is falling through the terrain when it is spawned.
Its taken a little while for me to work out a solution to this, but now I think I have one that seems to work.
First, my default pawn class is SpectatorPawn
My map has Enable World Composition checked, along with Enable World Origin Rebasing.
Now in my GameInstance blueprint, I have added 1 custom event called PlayerEnterWorld, and a function called CheckLevelVisibility. The PlayerEnterWorld is called by the level blueprint of the persistent level.
In the PlayerEnterWorld event, I teleport the spectator pawn (already possessed by the player controller) to the location where I want to spawn my player character.
I then use SetTimerByFunctionName to create a repeating timer for 0.5 time and the function i’m using is CheckLevelVisibility, so this function can be called repeatedly on a 0.5 second interval.
In the CheckLevelVisibility, I am checking to see if the name of the sub level where my character is going to be is loaded, and if it is, Clear my timer, and then spawn my player character.
Now when ever I click play, with this approach, I can be sure that the sub-level has been streamed in before spawning.