1) I see what you mean - this is due to the movement code (and particularly to the "rotate to destination" function).
When the character reach a new cell, he seeks for next cell in the path, and you want him to "stop" and rotate to new destination.
When there is some difference in angle to destination -even few degrees will make it- the character stops to seek new angle to destination, so when he walks in diagonal, and he reachs the middle of a cell (could be some pixels before or after the center, because we are not doing a pixel-per-pixel fastloop movement) he can be some 2-5 degrees off to next middle cell, so he will stop and rotate accordingly.
In the file below I've included some tolerance (don't stop for angle < 30 degrees), see if it is any better.
However, the movement code I included in the example was not particularly aimed to precision, it was just a basic code to show the pathfinding working in few events, as the user is meant to code his own movement code basing on his requirements
2) It works on my side, in the example attached I've lowered frame rate and raised speed to make it reasonably usable on mobile
3) this also works on my side, check the .apk included below, does it work for you?
I've built with the same settings you find in the mfa (the ones I found in your example actually XD)
Please login to see this link.