I intended to run your code on my machine to see long it took.
However a quick calculation of F800 at 25mm dia. works out at approx 3700 degrees/min of the rotary axis.
My rotary max's out at 3000 degrees/min. So it would not give a proper comparison of time taken.
I assume that finishing toolpath is done with a ballnose cutter. Why not run "along axis" rather than "across axis" ? Much less demanding of rotary axis feedrate.
Greolt
My calculation was the same as yours. In motor tuning for rotary axis i have 4000 degrees/min velocity (which should be sufficient) and 400 for acceleration, so it seems that acceleration is the limiting factor here. When milling across axis on very small objects, rotary axis makes hundreds of tiny turns, accelerates and decelerates in short intervals, so unless the acceleration/deceleration is instantaneous, the actual feed never reaches the projected value. That`s just my guess.
Why not run "along axis" rather than "across axis"? Well i was thinking the same thing, it is much less demanding of rotary axis, but unfortunately there is a downside - for finishing toolpath the total machining time is 3 to 4 times longer than with "across axis" (and i `m really trying to cut the milling time as much as possible). At least this is the case with RhinoCam, i haven`t tried any other CAM software yet.