In other words, the loop will happily spin through all elements even if the first `exec` is not done executing. The result is that you might have 10 different `exec`s going at the same time, and then all executing their callbacks. Meanwhile, the error handling callback at the bottom has also probably already getting called.

What's necessary is a way to make sure that each cycle of the loop doesn't proceed until all the callbacks for exec have been called. That's what the code I pasted does.