MoveSCurve() Not (Quite) Getting to Position

Sounds like the Axis has not settled. What do you have set for all the settling criteria?

https://support.roboticsys.com/rmp/settling.html

If it doesn’t reach the target position, it is possible that the drive’s position loop is not using an integrator (or sufficient integrator) to result in zero position error (on the drive side).