I guess (1,delay=delay-1) [*0:$] ##0 delay <= 0 should be (1,delay=delay-1) [*0:$] ##1 delay <= 0.
(1,delay=delay-1) [*0:$] ##0 delay <= 0
(1,delay=delay-1) [*0:$] ##1 delay <= 0
Please refer to the following. I believe they are helpful to you.
sva_repeat_delay_thru_pkg_011624.sv
sva_repeat_delay_thru_pkg_011624.pdf (89.0 KB)