@Josber, se me ocurre algo así:
En la Working Global:
En el evento "Click" del botón Cancelar:
En tu bucle haces lo siguiente:
Código COBOL:
MOVE "N" TO GLB-CANCEL
PERFORM UNTIL ... OR GLB-CANCEL NOT = "N"
*> tratamiento existente
INVOKE POW-SELF "ThruEvents" *> IMPORTANTE! Si no lo haces, el botón Cancelar estará bloqueado, vamos, todo el Form
END-PERFORM
IF GLB-CANCEL NOT = "N"
INVOKE POW-SELF "DisplayMessage" USING "El proceso ha sido cancelado." 48
ELSE
*> Tratamiento actual
END-IF