I think this is a previously reported issue (don’t know the ticket number right now), where the callback is called after the first component (.x) is finished animating, and subsequently stopping the .y and .z animations. And since they never reach the end values, the error accumulates.
Knowing this, a workaround could be to set the correct exit value in the play_anim.