There's one thing that needs some consideration when using these registers. When the STB is read via the VISA api, that is an destructive read (love the term). Which means is is read and set to 0 in one atomic operation. That's solid!
Reading the other registers don't work this way. Which mean that getting the register content and resetting it, cannot be done atomically. The danger of this is that after reading the content, a new state can be set at the device, just before clearing it. That way that status change will be unnoticeable.
The remedy against this is not clearing the register until one knows for certain that the dmm execution is in a safe state to do so. A destructive read would have been preferable, because until that safe state event bits cannot be "reused".
Another technique might be to make the reading of the register and clearing it uninterruptible.
This could be done between:
TRIG:PAUSe
TRIG:RESume
But one does not want to do this while polling.