Windows 10 (latest update as of 27-07-2018), using the java runtime bundled with minecraft.
When a (sticky) piston is powered or unpowered, it reacts 1 gametick too late. If it's pushing or retracting a block, block 36 will be created at the right time, but the block will be placed in the new position 1 gametick later than it should.
I attached 2 world saves (one for 1.12.2, the other for 18w30b) which both contain 3 different setups. These setups can also be seen in the attached screenshot.
How we know block 36 is created at the correct time: a chain of sticky pistons and redstone blocks (setup 2) still retracts instantly.
How we know pistons start extending too late: if a sticky piston with a block on its face receives a 3 gametick pulse (setup 3), it spits out the block. It acts as if it received a 2 gametick pulse.
How we know the block is placed in the new position too late: we need to look at setup 1 for this. When discussing timings I will ignore the repeater that's right behind the lever, since it's only there to prevent the player input bug from affecting the results
When the lever is flicked on, the 1st piston should extend after 3 gameticks, and the 3rd piston after 4 gameticks. They should be out of sync. However, in 18w30b, both pistons extend at the same time, after 4 gameticks.
When the lever is flicked off, the 2nd piston should extend after 3 gameticks, and the 4th piston after 4 gameticks. They should be out of sync. However, in 18w30b, both pistons extend at the same time, after 4 gameticks.
This bug is probably related to