Assertion failing to check all cases

It looks like that is the correct answer, thanks. It is tool dependent:

# mypropBAD passed at                 1000
# mypropGOOD passed at                 1000
# mypropGOOD passed at                 2000
# mypropGOOD passed at                 3000
# mypropGOOD passed at                 4000
# Info: RUNTIME_0068 testbench.sv (11): $finish called.
# Time: 5 us,  Iteration: 0,  Instance: /top,  Process: @INITIAL#5_0@.
# stopped at time: 5 us
mypropGOOD passed at                 1000
mypropBAD passed at                 1000
mypropGOOD passed at                 2000
mypropGOOD passed at                 3000
mypropGOOD passed at                 4000
Simulation complete via $finish(1) at time 5 US + 0
# mypropGOOD passed at                 1000
# mypropBAD passed at                 1000
# mypropGOOD passed at                 2000
# mypropBAD passed at                 2000
# mypropGOOD passed at                 3000
# mypropBAD passed at                 3000
# mypropGOOD passed at                 4000
# mypropBAD passed at                 4000
# ** Note: $finish    : testbench.sv(11)
#    Time: 5 us  Iteration: 0  Instance: /top
mypropBAD passed at                    0
mypropGOOD passed at                    0
mypropBAD passed at                 1000
mypropGOOD passed at                 1000
mypropBAD passed at                 2000
mypropGOOD passed at                 2000
mypropBAD passed at                 3000
mypropGOOD passed at                 3000
mypropBAD passed at                 4000
mypropGOOD passed at                 4000
$finish called from file "testbench.sv", line 11.
$finish at simulation time                 5000