On the client, NotifyBeginPlay is triggered via AGameStateBase::OnRep_ReplicatedHasBegunPlay. However, if a replicated actor is waiting on its initial replicated state to be received and applied (bActorIsPendingPostNetInit), it will return early from AActor::DispatchBeginPlay. Later, in UNetActorFactory::PostInit, bActorIsPendingPostNetInit is set to false, and AActor::PostNetInit is called, which handles calling DispatchBeginPlay for the newly initialized actor.
However, UNetActorFactory::PostInit does not call PostNetInit for statically placed actors. This means that if a statically placed actor applies its initial state after OnRep_ReplicatedHasBegunPlay is called, it will not call BeginPlay on the client. If the priority of the actor is increased such that it applies its initial state before the GameState, it will call BeginPlay as expected when OnRep_ReplicatedHasBegunPlay is called.