Hey, I did it. Please check it out and thanks for your interest.
To cause the problem, enter debug mode and keep pausing and unpausing, apparently it is the same as setting the timescale to 0 and 1 again. The problem is caused not only if you pause when the sprite is on an arrow, but also when it is traveling between arrows. I think it's because of pausing when tile movement is moving between tiles, and then the movement gets duplicated. If you pause it when it's changing direction, it may go diagonal, it's crazy.