dJointGetSliderPositionRate() assumes that the slider axis goes through the centers of mass (COMs) of both bodies. It returns incorrect rates when the assumption is not true.
Replace demo_slider.cpp with the attached file. When the position is stabilized around -0.1 (by LoStop), dJointGetSliderPositionRate() still returns a large nonzero number. The following values can be observed in the console:
slider pos: -0.100759, slide vel: 0.330486
If SLIDER_POS_RATE_TEST_ENABLED is changed to false in the new demo_slider.cpp, the assumption about the COMs becomes true and dJointGetSliderPositionRate() returns a number much closer to 0 when the slider position is stabilized.
problem demonstration