Dreck:
You can have separate programs for the various belt lengths, as BR549 wrote a program to grind a belt for a 360 degree rotation of "A". Just run the program with a larger "A" value, and note the degrees to complete a given belt length. Then edit the program, and give it a name that identifies the specific belt, such as: 28 inch Belt, 44 inch Belt, etc.
Also, if you use the spindle CW code, M3, you can turn on a relay for the grinder. A program end code, M30, will turn off everything at the end of the program, without manually turning off the grinding head.
Mach drives multiple axis', i.e., X,Y,Z,A in a vector format if they are on the same line. For instance, if you have the following program;
G0 X0 Y0 M3
G1 X20 Y1 F100
M30
The X and Y axis will start and stop at the same time. However, X will move 20 times faster than Y, but they will move in a coordinated vector.
Conversly, if the G1 line were broken;
G1 X20 F100
Y1
M30
The X axis will move for 20 units first, and after X reaches 20 units, the Y axis will move 1 unit. Then the program will stop, and reset to the beginning. If the grinding head is started and stopped with the M code, it will turn off at the end.
Also, the feedrate code, F, is modal. This means that it only need to be programmed once, for a given series of feed moves, or it will remain in effect until changed by another F value.
My first example had a F... on each line, as often when combining the X or Y axis with A, the resultant feed can be very different when X or Y combined with the A axis moves. Since "A" is not a linear function, the surface speed becomes a function of the "A" radius, when combined with an X or Y axis movement. This is something that only you can determine given your machine configuration. There is a General config section for the rotary axis radius.
You can play around with different feed rates, and A values, as well as moving the Z axis in smaller movements to engage or disengage from the belt surface, as the A axis keeps moving. For instance you could have the Z axis move in increasing depth increments as the belt rotated, making a finish pass in a smaller value.
It seems to me,

the only button necessary to run the grinding process is the "Cycle Start", as Mach can operate relays under program control. As BR549 pointed out, the entire list of codes is in a "Que", and Mach is not designed to break into the program midway, and branch off into another axis function. You can do a "Feed Hold", but that will just pause the axis motion, not the M3 (spindle relay on), or a "Stop" which you do not want to do either, unless absolutely necessary as they will definitely gouge the belt somewhat.