Remove the M98s. END 1 and END 2 should be sufficient.
M98 will return you to the specified N label (which you don't have). Unexpected results should be expected.
N1 WHILE [#5042 GE [#100 + [#101 + .001]]] DO1
G90 G01 X 0.0 F #105 (Traverse Start to End)
G91 G01 Y -[#101] F #104
G90 G01 X 0.5 F #106 (Traverse End to Start)
END1
(Rough Finish Grind)
N2WHILE [#5042 GE [#100 + [#102 + .0005]]] DO2
G90 G01 X 0.0 F #105 (Traverse Start to End)
G91 G01 Y -[#102] F #104
G90 G01 X 0.5 F #106 (Traverse End to Start)
END2
Steve