No, I understood you fully. M201 will not work since it stops all other moves.
What you need is a extra dimension in nonlinear bresenham to handle your motor. Currently you have virtual axis, X,Y,Z and E and there you would need to add Z2 or however you would call this. Then in transformCoordinates you woudl also compute Z2 from x,y z and set it.
This is not really complicated, it only goes through quite some parts of the computation in motion.h/cpp. You would also need own accelerations and jerks for that motor and at last conditional compilation to only include all that stuff when needed. And it will take more ram, so a due based board would be good.
That would be the 100% correct solution. If it needs less steps/speed then the rest you might be able to handle this in a interrupt correcting while needed. Would reduce modified code greatly but requires that exact position is not an issue, which is the case here. Problem here arrises if you need acceleration. As long as you can simply add a step every inerrupt call or do not add it you are finished quickly. If this looses steps so you need acceleration this becomes more complicated.