Why does a root motion animation not update the character controller facing?

I’ve been trying to implement a quick 180 turn, but am running into problems because root motion doesn’t update the controller’s rotation, so following the general knowledge on the internet (turning controller rotation off and then on), I’ve managed to get the following… but it’s not ideal.

As you can see, after the root motion rotation finishes, the Controller does another quick rotation as it catches up when bUseControllerRotationYaw is turned back on at the end of the animation, it’s not instant.

Called at the start of the root motion animation:

APawn::bUseControllerRotationYaw = false;
AController* myController = APawn::GetController();
FRotator CurrentControllerRotation = myController->GetControlRotation();
CurrentControllerRotation.Add(0, 180.0f, 0); // same result with -180.0f, so it's not a catch-up rotation
myController->SetControlRotation(CurrentControllerRotation);

Called at the end of the root motion animation:

APawn::bUseControllerRotationYaw = true;

The whole reason I redid the animation as root motion was because I hoped/assumed the engine would actually drive the rotation and get rid of the ugly flash adjusting the forced facing direction change resulted in:

I’ve tried it as a normal animation, and as a montage. Same difference.
Does anyone have a solution?

FWIW I have a thread cooking on this. Hope to hear from them soon: [4.7.6] Player Controller rotation doesn't update with Root Motion Rotation and Input Yaw Disabled - Character & Animation - Unreal Engine Forums

I’ll be keeping an eye on it, thanks.