We discussed this with @akaariai today, but I'm very keen to know your opinion on the matter.

Basically it comes down to signals, some handlers are executed within atomic blocks, and others from outside, and this depends on the underlying implementation of those related method. We concluded it'd be best to wrap everything with an atomic block.