Lag Hiccup When Syncing New Player With Large Game State

Options
So my game state can have a lot of stuff in it. When a player joins the game late, it requests the master for an updated game state. The master then goes through every networked object and gets its particular state and send its state to the joining player. To avoid a stutter when a new player joins, I use a coroutine that breaks up the synchronization process into chunks by waiting a frame between each category of networked object (i.e. players, enemies, items, etc.).

My issue is that while a joining player is in the middle of receiving the game state, if an action that results in an RPC call that depends on the game state of something being correct, bad things may happen. For instance, if the joining player has synced the enemies in the game, but before syncing the items, an enemy consumes an item, the joining player will receive an RPC and won't know what to do, beacuse it doesn't know about whatever item the enemy consumed.

My current solution is just to pause the game when someone joins. Alternatively, wrap all RPCs so that I can toggle on caching for whenever a player has joined, but hasn't finished syncing their game state. Is there a better way? Using custom properties seems like a possibility.