Best way to move a pawn in the following scenario?

Subtracting two vectors V2 - V1 gives you a vector from V1 to V2. Normalize that vector to make it a unit vector (length=1), and you can use that as movement input.

AddMovementInput works with a world direction so you don’t even need to convert it to local space. Something like this should do the trick :

FVector V = TargetLocation - Pawn->GetActorLocation();
FVector WorldDir = V.GetSafeNormal();  // use GetSafeNormal2D if your pawn cannot fly
Pawn->AddMovementInput(WorldDir);