There will be a speed below which you can do an "instantaneous" start or stop in X,Y without losing steps. It is very possible that this speed will be below your cutting speed so you only need to worry about rapid transits.

Z shifts will probably be different and are not to be forgotten when setting your accelerations.

Accelerations are really easy to code until you reach the point when the idiot operator suddenly presses the STOP button causing accelerations to become decelerations and a new plan has to be formulated to get everything going again when the IO presses RESUME. If you are coding accelerations plan for IO commands early on in the process or you will end up with a mess.

The other consideration is what happens when you get to the end of something and need to load the next movement despite the fact that you have 3 axes going like the clappers and you are in danger of over-running your step interval.

I usually create an acceleration table which is a list of numbers that will reload the timer that initiates the step. Each straight line has 3 components, accelerating steps, constant velocity steps, deceleration steps. This needs a bit of sorting out when the IO strikes but it is compact and fast and I am getting a bit too geeky