@odd imp Not familiar with the game but if it's kind of grid based movement, say where character travels to each square before being able to travel to the next square...
With this, it seems that you've done that, so the movement seems to be the issue.
Do have collisions that could be an issue? Could be possible because you're using a character body. They require the moment to be done with velocity and changed with move _and_slide() and preferably inside _physics_process(delta)
If you expect that the character will not receive collisions you could use an area instead.
Also, in input, immediately set moving to true once you determine it's true. That way it quits processing instantly.