Generates the next synthetic GPS point in the current direction.
Expects config.direction to be a resolved direction atom. A direction of
:random (or a missing :direction key) is resolved once and then fixed
for the worker's lifetime — the worker travels consistently in one direction.
Handles both coordinate movement and elevation changes.