"CreateLobby is async — IsActive is still false on the same frame"
Networking.CreateLobby is async — Networking.IsActive is still false on the same frame, so any branch on IsActive takes the wrong path. Gate on your own synchronous mode enum instead.