The bug
When using `/tick step 1`, moving blocks have a random chance of being 1 tick behind depending on your connection. To reproduce:
Run `/tick freeze`
Power a piston
Run `/tick step 1`
At this point, the piston head could either move forward half a block or stay in its initial position.
Serverside, the piston always moves forward half a block.
Case where it moves forward on the client:
[media]Case where it does not move on the client:
[media]
The first bug is caused by MC-266074, so I removed it from the description.