Looking at SimulateTick in the TickProcessingService it appears that each new position is calculated in several small steps by using the current position, the heading and a speed of 1. Each time QuadrantMath is called with the same parameters (speed = 1 and heading), which means you will get the same position delta. The final position will thus be the original position updated with speed times the position delta produced by a single execution of QuadrantMath with the fixed heading and a speed of 1. It appears that movement will be along the x- or y-axis or one of the diagonals only.
Or am I missing something?