AActor construction order crashes game

You could try doing basic checks against the object and calling LoadObject otherwise.

// Check if the Actor is a null reference
if(Actor2 == nullptr) {
    // Call LoadObject to load the object into the game
    Actor2 = LoadObject<AActor>(nullptr, TEXT("/Path/To/Asset/ActorName.ActorName");
}

// If LoadObject was not enough to initialize the actor do it manually
if(!Actor2->IsActorInitialized()) {
    Actor2->PreInitializeComponents();
    Actor2->InitializeComponents();
    Actor2->PostInitializeComponents();
}

// Object should now be loaded and accessible.
Actor2->DoStuff();

Due to the initalizeComponents functions being part of the RouteActorInitialize routine used for seamless travel this methodology might interfere with the seamless travel functionality.