Temporary solution.
It is enough to do the following
MyGameInstance.h
virtual void PlayReplay(const FString& InName, UWorld* WorldOverride = nullptr, const TArray<FString>& AdditionalOptions = TArray<FString>()) override;
void HandlePreLoadMap(const FString& MapName);
FDelegateHandle _HandlePreLoadMap;
MyGameInstance.cpp
void UMyGameInstance::PlayReplay(const FString& InName, UWorld* WorldOverride, const TArray<FString>& AdditionalOptions)
{
Super::PlayReplay(InName, WorldOverride, AdditionalOptions);
_HandlePreLoadMap = FCoreUObjectDelegates::PreLoadMap.AddUObject(this, &UMyGameInstance::HandlePreLoadMap);
}
void UMyGameInstance::HandlePreLoadMap(const FString& MapName)
{
FCoreUObjectDelegates::PreLoadMap.Remove(_HandlePreLoadMap);
GetWorld()->DemoNetDriver = nullptr; // The solution lies in this line
}