This gist comes after my comment left in the original post.
The pattern is great but the way it was presented not too great:
- it's all about queue ownership
- the queue cannot iterate in multiple loops because it would create forever pending promises all over
- the queue is just an Array after all, so how about we treat it as such?