Z axis homing fail and inconsistent heights on Z towers

Had this same EXACT issue. It only went away when I replaced both geared steppers and replaced both pulleys. I also replaced the limit switches first, but that didn’t do it.

How do I know the stepper was the issue? I don’t know, but the issue absolutely went away permanently when I did.

The left and right sides of the gantry should never get out of sync, if it does there’s something majorly wrong with the motion. I have a Taz Pro XT for example, and I could run gcode to move the gantry up and down to the top and bottom 50000 times and it will still be exactly level.

None of these parts are easy or cheap to find.