For the lag, you could connect the signals as deferred (.connect(_any_method, CONNECT_DEFERRED)) so the synchronization is pushed to the next frame, when the engine has some free time, instead of overloading a single frame with both page creation and synchronization.
Alternatively, you could use several awaits to wait a few frames before synchronizing. If it’s a heavy function, you could split it into multiple functions that do a small part each frame, or even use a secondary thread to run the synchronization.
All of these approaches could help reduce the initial micro-lag.

















