Wenn der User ja die Entscheidung trifft auf den Satz zu warten, kannst du doch über eine Schleife mit kleinem Delay (läuft doch auf dem Web-Client?) z.B. alle 100ms versuchen die Satzsperre (bei *immed) zu erhalten bis es klappt. Hier hat der User sogar noch die Eingriffmöglichkeit den Wartevorgang abzubrechen.

Ein Batchjob oder Thread hilft da ggf. auch nicht, da ein anderer Job trotzdem den Satz vorher erhalten könnte (Job A Wartezeit abgelaufen, Job B noch wartend, Job A macht neuen Chain und liegt nun hinter Job B in der Lock-Queue).