Gruppenjobs haben auf jeden Fall das Problem, dass die inaktiven Jobs tatsächlich nicht reagieren können.
Da ja die obige Lösung den aktuellen Job tatsächlich unterbricht und auf einen anderen Job wechselt können ggf. laufende SQL-Threads auf globale Anforderungen nicht mehr reagieren.

An Stelle auf einen Gruppenjob zu wechseln kann man ja ein anderes Programm aufrufen.
Wenn dieses eine eigene ACTGRP hat kann es sich auch seine Zustände merken um bei erneutem Aufruf, egal aus welcher Jobtiefe, entsprechend reagieren.

Um einen Job zu unterbrechen kann man sich (wie D*B schon mal beschrieben) einen BRKMSG-Handler installieren, der den laufenden interaktiven Job tatsächlich per Callstack unterbricht.