Join or Rejoin room, not all players are 'there', what's the protocol?

Options
I have a small app running in Unity webGL. The first player that joins calls JoinOrCreateRoom with options to keep alive for 30 seconds. Additional players join. They may set some custom room properties. The first joiner does not always get these notifications.
As people disconnect and reconnect, sometimes their avatars are not (re)instantiating. The avatar prefab has a component 'AvatarController'. So on OnPlayerEnteredRoom and OnJoinedRoom I check PhotonNetwork.CurrentRoom.Players to see if there is the same number of AvatarControllers in the scene. Sometimes there are not. One or two players may 'drop out' and not re-initialize in the room. And different clients see different results: Players 1,2, 3, 4: Player 1 can see 2 and 3 but not 4, player 2 can see 3 and 4 but not 1, and so forth.
I have one region whitelisted, use unique room and user id's. Note the players seem to be joined (they are in the CurrentRoom.Players list) but just not initializing.