About time scale I understand that change it is not an option. I changed it only to show the root of the issue.
A solution using controllers might be to use the On Control Point Reached event to force the controller to not overshoot the CP in one frame. That way you will ensure all frames have their starting position and end position on the same segment. This will avoid the particle emitter going diagonal. This will of course make the controller movement not regular.
In concrete terms, listen to the OnControlPointReached event, and in the listener update the controller position to the desired value and set the Cancel value of the event's argument (instance of CurvySplineMoveEventArgs) to false.
I hope this helped.
A solution using controllers might be to use the On Control Point Reached event to force the controller to not overshoot the CP in one frame. That way you will ensure all frames have their starting position and end position on the same segment. This will avoid the particle emitter going diagonal. This will of course make the controller movement not regular.
In concrete terms, listen to the OnControlPointReached event, and in the listener update the controller position to the desired value and set the Cancel value of the event's argument (instance of CurvySplineMoveEventArgs) to false.
I hope this helped.
Please consider leaving a review for Curvy. This will help a lot keeping Curvy relevant in the eyes of the Asset Store algorithm.