I had a job that required many rotations of the A axis to get to various A positions quickly within a program. If you can visualize milling a long screw thread, then you can imagine that several full rotations are required to complete the job. If there are multiple passes to be completed, going in one direction only, you can imagine a lot of wasted time as the control unwinds the A position for the next cut.
The setting "quick rotary G28" should be on, but that is not the end of the story, at least on my Haas which has older software on it.
I made good use of G92 to control the A axis behaviour. At the completion of one cutting pass, I made whatever additional movement was required to bring the A axis exactly to the 360 (0 degree) position, with commands of less than 360° length. Then I used:
to rename this position at zero, made a simple rapid linear movement back to the X start of the part, and commanded the next XA movement in typical manner.
As with any use of G92, you must know where the axis is located at the moment the command renames the display, so that you do not lose your A reference point. That is why I say to end a long A movement exactly a full multiple of 360° turns.
At the end of the program, I went in to the offset registers to look at the accumulated G92 value assigned to A. Quick rotary G28 does not cancel this value out, even though the head returns to its zero within one revolution, so you have to do it yourself, with another G92 command of equal but opposite magnitude at the end of your program. If you fail to cancel what is in the G92 A register, you will still experience the phenomenally long wait while the axis unwinds at the beginning of the next run of the program. The Haas keeps track of all G92 commands in a cumulative manner.
Here are the program end lines that I found would work properly in conjunction with the quick rotary G28 parameter being on:
G00 G91 G28 Z0 A0
G92 A(inverse of amount in G92 register found after running program through once)
G00 G90 G53 X-20. Y0.
In the course of doing this, I found the control had some quirks: I had programmed individual movements as long as A5400.000 to A-5400.000 and my total cumulative G92 commands got me up as high at G92 A86400 for an offset. The jog handwheel would not jog the A axis any higher at this position, but the control still would run the program ok.
Now if in the course of setting up to run your program, you abort part way through, and have been using G92, then there could be some residual amount in the G92 A register. You can also zero this register out manually before rerunning the program to avoid the unwind thing.