AddTorque weirdness

So I’m building a game with space ships and such, and unsurprisingly, I’ve got ship controls that let the player point the ship at any point arbitrary points in space (among other things). The way I’m currently doing this, the ship applies a torque to itself clipped by whatever maximum torque it can apply along the torque axis. Roughly, it looks like this:

public void AimAtPosition(Vector3 target) {
	rigidbody.AddTorque(k * Vector3.Cross(transform.forward, target - transform.position)); // for some float k
}

Rather trivial stuff. Unfortunately, I’ve found that if you watch the value of Vector3.Angle(transform.forward, target - transform.position) over time, it will never drop below some amount well above the change in angle per frame. For instance, if you start with the two vectors (transform.forward and target - transform.position) about 25 degrees apart, the angle between them never closes below 1.5 degrees, even tho the change of angle per frame can be quite low (0.04 degrees per frame, for instance). Similarly, if they start 80 degrees apart, they never lower than 3 or so degrees apart.

I know for certain it’s not the definition of Vector3.Cross producing incorrect cross products, and it’s clearly not a precision error resulting from crossing two almost parallel vectors because obviously neither of the vectors used above are anywhere near parallel. Why is this happening, and how can I fix this?

::bump::

Does anyone know??

Some extra informaiton: if you use ForceMode.VelocityChange instead of ForceMode.Force, the problem doesn’t exist.