TL;DR: Sometimes Emacs needs a timeout
A diamond is very pretty. But it is very hard to add to a diamond. A ball of mud is not so pretty. But you can always add more mud to a ball of mud.
– Gerald Sussman, paraphrasing Joel Moses
A common problem with Emacs’ giant ball of shared state: Any code can step on the feet of any other – including yours.