Monitor doesn't end the pause at the start of a trace
The monitor attempts to measure the mark/space ratio during a trace by calculating how much time is spent in "pauses" (periods when the MPS is running and the mutator is paused). This is intended to work by calling Trace.pause_begin at the start of a pause and Trace.pause_end at the end of a pause.
There are two pauses that we attempt to measure. One is due to ArenaPoll and this is correctly handled in the monitor — the ArenaPollBegin event calls Trace.pause_begin and the ArenaPollEnd event calls Trace.pause_end.
However, there is another pause in TraceCreate (the condemn phase, where the trace establishes the white set), and this is not handled correctly — the TraceCreate event calls Trace.pause_begin but there is no corresponding call to Trace.pause_end.
This means that (i) all the elapsed time during a trace will be accounted as paused by the monitor, even though some of that time was used by the mutator; and (ii) if there is an ArenaPollBegin during the trace then the monitor will assert.
I think the appropriate event to add the Trace.pause_end call is TraceStart which follows TraceCreate if everything is working smoothly.