You are checking for key input only when a block is waiting to fall. This means that while a block is falling, keypresses won't register. This means you are missing 50 to 75 percent of the keypresses.

Always check for keypresses. In your method let's say the blocks fall once every second. This means every other second, no keypresses will register. Change it to always check for keypresses yet only respond to them when the timer is out. Also in tetris you can rotate the block regardless of the time it takes to make one fall. So that should respond immediately.