The client queues actions that depend on the current move immediately, but waits until the update tick to queue the actual move. This means that the server receives and processes moves after actions that use that move. Can be problematic for internal bounds checking and for third party software (anticheat).
Solution: Insert moves into the queue before non-movement packets? (EDIT: would break digging downwards)
I swear I've seen this issue reported somewhere, probably on this tracker, in the last few days. Did you perhaps talk about it elsewhere?