My experience is… the Pause Button, once pressed, finishes the line of gcode that the machine is currently on, then pauses and makes no change to the z-axis or any other axis. If you are cutting an arc or near the end of a the current line; the machine will pause pretty quickly, but If you just started a long straight cut, it will take until it gets to the end before it stops.
Goto: this just goes to whatever line of gcode in the file that you entered and starts to execute. If the line that moved the z-axis either in or out of the cut is above or below the line number you entered; the z-axis will not move, but the x and y will based on what line you are on. I generally on use the goto button to go to a z-axis move in the .nc file. If I want to stop in the middle of one operation, like a pocket and move to another, then I normally press Pause, use the z-axis control to raise above the work surface and then GoTo the line before my z-axis move into the operation I want to go to.
Hopefully this helps. I know it can be a bit confusing; sometimes I’ve had the same .nc file open in ncviewer.com to figure out what line i want i to jump to if need.