Not the key mapping. The controls are frustrating.
When I press the arrow key, the character does not move immediately. I know the game mechanics probably require you to turn without leaving a grid cell, so I understand why you need it. To fix that, you should make it require a very brief key press (like 100ms any time less than 250 ms, including pressing and releasing the key in the same millisecond) instead of a normal delay (like 250 ms). Holding it down for 250 ms should get the character moving immediately. (Always move in the direction of the arrow key after 250ms. Don’t wait 350ms if the character is facing the opposite direction.) Whatever delay you use, it should not be the same as the amount of time it takes to move from one grid to the next. It should be much less. (Whatever makes it feel responsive without making it impossible to turn in place. The shorter the delay, the better.)
The movement should be smooth. When the character enters a grid cell and the animation would stop, you should check if the key is still held down and keep moving if so. There should be no pauses or stuttering.
Finally, when you change direction in the middle of an animation, you should start moving the character in the opposite direction immediately. There should be the illusion that there is no grid based movement when you can get away with it. Having to wait to change direction is annoying.
Note that currently, when you press the arrow in the same direction, the character moves forward one square, stops, then starts moving again. Sometimes it feels like there is lag if you’re moving by holding down an arrow key. (You aren’t using key repeat events, are you?) Another thing you might consider is combining the functionality of the up/down arrow. I tried, and I can’t carry more than one block at the same time, so there is no need for them to be separate keys. You make make the down key carry/drop and the up key work the same way as space. (So all the keys are in the same place.)