Honestly, it all comes down to not being able to override the Hero's automatic movements. If the way the commands worked was Player issueed commands overrode automation, it would fix itself. That way I can either choose to let it happen or manually make adjustments.
This would also address witchaywoman's concerns.
Possible fix: If Hero is moving in direction A, pressing key for diretcion B stops Hero Movement. If Hero is at a standstill, pressing key for a direction starts Hero moving in that direction.