When a signal is sent to update a block, and while the block's process is running another signal is sent, the block's process crashes, so it disappears and doesn't get updated again until the next signal is sent or timeout reached.
I finally tracked this bug down and fixed it in #454.
PS: I can't overstate how happy I am to finally track down this bug after more than a year of being bothered by it. Hope this helps others as well :).