So, I was on Java in 1.16.1 playing with fast clocks, and i attached a piston to one, facing horizontally. As I was walking away, I got stuck in the quickly moving piston head, and a very strange thing happened. It pulled me on top of the piston. So I started thinking, this is a lot like the old piston translocation bug in 1.9 that let you move through pistons as they briefly had no collision box as the piston head retracted. I was playing around more trying to see what was causing it, and it wasn't a one-off fluke, you can very reliably be transported atop the piston. I placed a piston on a slower clock, and realised that you couldn't walk forwards into the piston head like with a fast clock, as that always pushed you back, but if you walked in from the side, behind the piston head, as it retracts, if the timing is correct, you will be moved atop the piston. What i believe was happening on the fast clock was that the piston head would sometimes move through you, leaving you behind the piston head, where you can then be pulled atop the piston. I found through my testing that it helps if you walk towards the body of the piston as you enter from the side for more reliable results. I failed to recreate this behaviour with a lever just closing it as I was inside it, and I believe I might have a clue as to why it pulls you above the piston. I think it might be that, as the piston extends, the arm briefly has no collision, allowing you to stand in the middle, and when it then has a collision box again it moves you to the top. The only use I can think for this might be a staircase-type device that, if the timings were spot on, could move you upwards very very quickly.
Edit: Through more experimentation, I have found that my theory is indeed correct, and a 4-tick clock is very reliable for transportation, and putting a grindstone beside the piston allows for easier execution as the hitbox is the same, or near enough, as the piston body.