Is there a particular reason you want to use torque to accomplish the direction change?
Unless you want to get quite a bit more complicated, a simpler approach is to add a time-based fraction of the difference in the vectors to the current direction, and normalize the current direction. If the difference is "small enough" [ you pick a delta ], simply set the current direction to the desired. That is, change the direction "manually" rather than accomplishing it using angular acceleration and angular velocity, which is what torque does.
I don't know what your ApplyTorque() function does, but, if it's constructed properly, the overshoot/oscillation occurs because you keep applying torque in the direction of the desired direction no matter how fast the object is approaching the desired direction. I.e., reducing the torque does not reduce the angular velocity.
Think in terms of: "Torque is to angular position as force is to linear position." If you keep applying force (even smaller and smaller amounts) to an object in the same direction, its position changes but its velocity keeps increasing. If you keep applying torque to an object in the same direction, its angular position changes but its angular velocity keeps increasing. That's what force and torque do.
It may be a more complicated approach than you want, but changing angular position using torque can be done using PID algorithms. That is, you have to decide what the new direction should be, and how fast you want the direction to change to get to the desired result. If you choose parameters other than those that produce critical damping you'll still get overshoot.
If you want to use torque, whatever scheme you decide on, you still have to consider the difference in current-vs-desired as an error term, and stop the process when the error is "small enough." I.e., assuming you're using floating point variables, you can't use "float_value_1 == float_value_2" to determine an end point, you'll have to do the equivalent of "Is error < some_epsilon?" to determine the end point.