How do I reliably reload streamed levels?

Hi I’m having intermittent trouble in multiplayer, connected to my dedicated server when re-loading a streamed level.
There is a small (1 room) world with three streamed levels loaded on top of the persistent map. When the user presses “restart”, the server receives an RPC to the GameMode subclass “MyGameMode” which sets the “should be loaded” flags to false, block on unload to true for each of the levels, then waits a bit (0.2 seconds), then loops through each of those same levels setting the “should be loaded”, “should be visible” and “block on load” flags true.

This project is on an Oculus Quest.

In single user, this works fine, however, on the Oculus Quest when running connected to the server with two or three other users this sometimes results in the level reload not completing properly, some objects not being created etc.

Is there a suggested formal way to structure things to make sure that all loads/unloads complete?