How do you initialize alpha ?
Alpha.z is different from zero because of “FVector SteerYaw = SteerVal * UpdatedComponent->GetUpVector();”
Why not clearing out Omega.z, if you do not want rotation around the z axis at all ?
If you want to use quaternions, you would have to calculate the final rotation of the actor and set it with AActor::SetActorRotation.
AActor::SetActorRotation accepts only a FRotator, so you would have to convert your final rotation back into a FRotator before you set the rotation.
If you are setting the rotation directly, the physic object can lose penetration infos from last frame, which will not look as accurate as if you control the angular velocities, which can be a problem if you rotate arbitrary shaped dynamic bodies against each other, but is normally not a problem for dynamic vs static intersections.
In my opinion, if the z clearing works, why would you change anything?