Ben,
I have a scenario wherein I need to check whether the clock sys_clk toggles within 80 clock cycles of en going low. I have a reference clock named refclk to time the assertion. The assertion should fail if the clock sys_clk does not toggle within the specified time.
I tried your solution but it does not fail when sys_clk is not toggling. Because the fork waits for posedge of the clock and never fails.