When I disarm HSM, the repeat keeps going.
What controls the AlertHSM variable? As long as it is true the repeat will continue. I dont see anywhere in the rule you posted that it gets set to true.
I have a separate rule for that.
I did this because HSM alert is not an available condition.
Edit: Rethinking it now. The original goal was to have a sequence going during the entry delay and have that sequence stop if HSM was disarmed or the delay expired. Perhaps it would be better to allow the sequence to continue during an alert and leave the not disarmed as the only condition for the repeat.
I think that may be the problem.
If your thoughts above don't help, I'd enable (at least) action logging for the rule and leave "Display current values" checked (which you can tell now from the screenshots that you do--the same info will show in the action logs, with the current values at that time). This will tell you why your repeat is still repeating--undoubtedly, one of the two conditions you're using in the "Repeat while..." expression is still true, and this will reveal which.