G90 is for absolute and G91 is for incremental.
When given new point while using incremental(G91), its from current position, not from zero point (like when using G90)
Havent done much basic milling for while, but if doing deep holes its hard to keep track of the current depth unless you loop it with (WHILE) macros.
But like you said, you want to keep it simple, that works. But id also consider
using subprogram and calling it with repeat.
You'd have the closing on main program, and the helical circle command on subprogram, something like ->
G0 X5 Y0 Z20
M98 P100 L10
(P = number of the subprogram)
(L = number of repeats)
G91 G3 I-5 Z-1
Whenever using incremental, remember to turn it back to absolute, otherwise crash might happen.
In any case, if i were you, look for M98 command in your manuals, since it might work differently in certain controls.
Aand dont trust my code, like said, rusty.
Whenever you start to mix with G90/G91, G40/G41/G42 you want to have a line on every programs start where it "defaults" these, this includes many other commands but just to advice to be careful with these.