Get the status of a sequence

The task check is using some data of the sequence which is send (in the task send_seq) and compare those with the data received from the DUT. If there is an error, in the comparison of these two information, a computation changes seq_list. At this stage, an item is sent by the monitor each 1us. So, the check in the task check() is done each 1us.
The problem is that during the execution of the sequence, the state of the DUT cannot be compare to the data in the sequence. So the list is always changed.

I’m looking for a way to do this comparison only when the sequence begins (when the driver called the method get_next_item()) and before the end (just before the driver called item_done()). However, because the project should be automatic, I cannot modify the sequence, only the virtual sequence and the environment. So my idea was to modify the run_phase of the sequencer to get the calls to get_next_item and item_done and pass them through an item in the FIFO to the virtual sequence. This way, the check task will see that the sequence is “running” on the driver or is near the end. In this two cases, the task will check the data received and not changed the list of sequences to execute.