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.