I think Ray has just about covered it all.
It all depends whether you have stopped the machine on the emergency reset button, or on the feed stop button. On the emergency reset, there is a good chance you will have lost position so the main thing is - are your DRO's accurate - in other words is the reading still refering to the present position of the cutter. It doesn't matter if you have moved it by jogging etc, while you clear the fault, but it does matter if it slipped when the fault occured.
If it slipped then you must , as Ray said, set them up again, including the Z height.
On most of my mill work. I have it drill a hole at the 0,0 position, so I can move back to this if I want to.I have home switches as well, but find this an easy way to re-locate in relation to the program I am running. Set all the DRO's to zero and that is it done. Set the Z at the work height and away you go.
Whilst many of the instructions to Mach 3 will remain, as you have found it will not switch the spindle on again, or the coolant, these are on/off applications and not remebered.
You can "step through" your program on the screen, by using the down arrow on the GCode window, without setting the machine going, and if you watch the tool path display, especially on the big display on Page 3, it will show the current cut as a white line. If you compare this with your workpiece, you should be able to work out where the program had got to.
You must be sure that Mach has all the information it needs to continue, and this is where you need to be reasonably familiar with GCode, because you have to look at the code, and think - if I were the machine, would I know what to do. This is not difficult - look at the code and if you see for example a G0 movement, you can reasonable expect that the cutter was moving from a to b, and that it would be up out of the way to do so. If the next move is G0 Z -0.5 say, then that is the cutter going down, and if the next move is G1 X*y*, then that is the next cutting move, so - rewind your program back to the G0 move (up arrow on the GCode window). Click on "set next line" and "run from here". Start your spindle (and coolant) and click on cycle start.
Where ever your cutter was (and you needn't have tried to get it back to where you think it was) it will move to the next position on the G0 move, then pick up the Z down move, and carry on with the G1 cut.
The important bit, as Ray said - are the DRO's accurate.