As an alternative, you could try Curve CP but it seems to give the same results. Most likely the answer is what @Joseph_Oster has already posted, closest point within given tolerance.
Which brings me to the following question:
Is this how Curve CP is supposed to work? I thought the output point was always ‘on’ the given curve (irrespective of tolerance) since that is what it mentions on the component as well