Quaternion slerp t parameter never reaches 1

I am trying to track the progress of a Quaternion.Slerp and the actual t param doesn’t make sense to me. The docs say “If the value of the parameter is close to 0, the output will be close to a, if it is close to 1, the output will be close to b.”

I have the following C#:

void FixedUpdate()
{
  rotTime += Time.fixedDeltaTime/ speed;
  Quaternion rot = Quaternion.Slerp(rigidbody.transform.rotation, targetRot, rotTime);
  rigidbody.MoveRotation(rot);
  Debug.Log(rotTime);
}

However, the rigidbody rotation seems to reach the target rotation when rotTime ~= .1 but I would expect it to equal 1. Am I doing something wrong/interpreting something wrong?

FWIW I think I can work around it by calculating the current rotation as a percentage of the target rotation, but I’d prefer to just understand Slerp’s t argument rather than trying to hack a solution.

No you are not doing something wrong.
Quaternion slerp will never reach 1 because you use Slerp as a “divide-remaining-distance” smoothing function.
Slerp is usually meant to linearly interpolate a rotation from a constant start rotation to a constant target rotation.
The difference between your current/start rotation and the target rotation will get incredibly small, but you will not reach the 1.

You can check the Angle between your current rotation and your target rotation and if it’s smaller than for example 1° you can treat it as finished.