Move before game detects that the piece has landed

Imagine the following szenario:
Is it allowed for the player to move down and then right so fast that the step method isn’t called in between although the piece has landed for a short time? Or rather shall we check if the piece landed also when the player moves down?

This has also some consequences for the Autoplayer: If a new piece is placed directly on another piece, the Autoplayer could move right. Is that a valid move?

The autoplayer has to simulate the step himself and hence he can postpone it until he has brought a piece in the position that he likes (with the restriction that he can never move a piece up of course). However a new piece is only spawned once an old piece has landed. Spawning a piece directly above an existent piece does not count as landing. (i.e. our code does not have to check all the time whether the current piece touches anything with its bottom side, rather we register landing once we issue moveDown and get false as return value)