This would probably be a good use-case for Classic Ladder, but I can't advise beyond that as I have never used it.
I would write a custom HAL component. Probably in the ".comp" preprocessor language (basically C) (because I am familiar with it) but you could do this in Python if you prefer, which makes waiting a bit easier.
You can't wait in a C realtime component, you have to write a state-machine, which ends up looking a bit like this:
Code:
static int sequence;
static double timer;
...
switch sequence {
...
case 0:
...
case 11:
if (condition == true){
timer = 2; // two second pause in state 12
sequence = 12;
}
break;
case 12; // waiting
timer -= fperiod
if (timer > 0) break;
case = 13;
case 13:
....
}
linuxcnc.org/docs/stable/html/hal/comp.html