Hello,
Thanks again for all the work you've put in on the package - you may want to know about an oddity we ran across recently (and found a good workaround for).
Our protocol ends in a wait period, and we discovered that idle(...) still allowed the last scene's objects to reappear on screen, so I added a blank scene with only a time counter in it, and noticed that under certain circumstances, we still ended up seeing stimuli from the previous scene on the subject screen, but not on the control screen. And: this only occurred when two displays were connected and in use, not when the subject and control screens were on the same display.
After some testing, and ruling out hardware causes, we discovered that it only occurred when the final (blank) scene and the idle call were both less than a full frame's duration. It would appear as though, while the control screen treats them as though they've occurred and therefore ends with a blank display, the subject screen skips them (since they're less than a frame) and ends with the previous scene containing the stimuli, which also means it's showing different content than the control screen.
Either way, the fix was relatively simple - just ensure that the blank scene is ceil(1000.0 / MLConfig.Screen.RefreshRate) milliseconds long, and use an idle after that with a similar time.