Nice touch for towns. One question before dropping it into a project with random encounters: does the optional small step go through the normal player move? In the default scripts a finished step runs onPlayerWalk, checks player touch events and ticks the encounter counter (Game_Player.updateNonmoving), so an idle step could start a battle or a touch event with no input from the player.
And does the idle timer respect $gamePlayer.canMove(), so the hero stays still during messages and cutscenes?