Add ability to block by acquiring and releasing a unique token (BL-475)

I think the reason is that the thread that shows the dialog goes on busily doing work. Painting its contents waits until something pumps messages, and even then, paint is a low-priority message.