What is the proper way to handle waiting for a reference to be valid?

Yah, I spent some time tracing through the Engine on the connect and that is what led to my current solution. Felt RestartPlayer was the best place to hook in. I copied most of what they had in their RestartPlayer into mine.

Respawning will avoid trips to the database to reload stats and cost tables is the main reason. Yes, it is inconvenient to remember the PlayerState is the actor GAS sees for PC and the NPC pawn class for NPCs, but I have that sorted out in the key places and it is not such an issue now.

At this point, I don’t see the player possessing other pawns as a gameplay mechanic.