In the Haas control the number of block look ahead can ber controlled with a G103 P# where # is 0 to 15 blocks.

The look ahead in the control can make the optional stop be skipped at the time the optional stop is turned on.

I haven't yet tested this out, but what I propose is the following:

Instead of just:

M1

use:

G103P0
M1
G103P15

I am assuming that the look ahead looks for the G103P0 and will turn off the block look ahead and allow the machine to stop on the M1 optional stop, if optional stop is on.

Again I haven't tested this out as of yet. 10 Fadals and one Haas mill. The next program I write for the Haas mill or translate from the Fadal to the Haas, I plan to test this out at a setup.
__________________________________
UPdate.

Thinking about this, if this was to work. If the control was reset after an M1, the control look ahead might be zero blocks. So, I placed G103P15 at the begining of the program. -- I got an alarm -- tool comp will not work with block look ahead limiting on. A G103 without the P word cancels this Haas feature. So I changed the blocks to:

G103 at the beginning fo the program. And

G103P0
M1
G103

As the optional stop format.

Well this didn't work. The control look ahead makes it skip the optional block until the next optional block.

So I'm back where I started. If I want optional stops, turn on optional stop before cycle start. Otherwise it may skip the optional stop after a current tool.

________________
What I may try next, requires more effort than just using code in some safe block format.

G103P0 at the beginning of the program. G103 before any tool comp calls. And after the last tool comp cancel (G40) for that tool use G103P0 following it.

The goal is to get the optional stop to work any time it is turned on. And not have the control skip the optional stop after the current tool.