Bug T60825: Transform operator gives wrong position when pressing MMB, or shift with constrain axis.
Fixed by saving transform values only when confirm, if there is a constrain.
I suspect that half of the variables in struct are unused, depending on case.
Your solution is interesting, and may even help solve other problems that have already been reported.
However the TransInfo struct is already large and confusing. It is also worth remembering that there are many types of transformation that don't need a values_final (like rotating UV maps).
I personally would prefer a solution that simplifies this struct among the various forms of transformation.
But the final decision is with Campbell.