Mach 3 can’t rewind the buffer. So it starts up again at the next line after the buffer. Mach 3 can be restarted anywhere in the program. However you really need to think about this because if the 300mm feed rate got applied in the buffer then you need to start at a point before the 40mm feed was called and you should make sure the first move after that is a safe one. Preferrably it is a move to the clearance plane.
I read couple of time what you wrote and only question is that I am asking my self does Feed Hold button have any purpose then, if I press Feed Hold button, machine will not stop in same second, it will stop slow but safe and it should be able to continue from that line in G code where process was stopped when I press Cycle start button, if that is not the case I do not see any reason why Feed Hold exist (except to stop G code and to start after all from zero).
You say : "Mach 3 can’t rewind the buffer"
I ask my self why it should rewind buffer at all, I just want machining process to continue from point from where I pressed Feed Hold (Even I like more Stop file, but will pretend that I will use Feed hold, I tested both and I see no difference except feed hold is slower and it does not turn off spindle, and coolant and so on..)
So in buffer should be information that I set Feed to 40 mm/min and couple of commands down I use G01 movement , and all the way down I set Feed to 300 mm/min, why would in buffer be 300 mm/min , I do not understand that part? Is there any link wher I can find how buffer works (intuitive for me is that I should not even care how it works, logical would be if I press feed hold, it stops with one feed and when I want to continue it should carry on with same feed).