Halt Attempted After Phase
data class HaltAttemptedAfterPhase(val stepName: String, val reason: String, val timestamp: Long = System.currentTimeMillis()) : SagaEvent
Emitted when halt because "reason" is called inside an after.each(step) { } block.
Vetoes cannot be applied after a step has already completed. This event is emitted so monitors (logging, metrics, alerting) receive the signal rather than it going to stderr. The saga continues normally — no step is vetoed.