I really like this.  Much better than the count++ idiom we are using all over the place.  I would suggest the following:

* Let's bite the bullet and just go to promises right now by using the 'prim' implementation already built into alameda.  https://github.com/requirejs/prim https://github.com/requirejs/alameda

* It's probably worth calling out in the docs that neither promises nor Q actually provide a construct like this.  There's Q.all and I guess the ES6 spec is looking at including an all method (https://github.com/domenic/promises-unwrapping), but it 1) requires that it knows all of the promises when instantiated, and 2) all returns when the first rejection occurs.

* This should have a unit test, doesn't have to be very complex, but there should be one.

* The docs should call out explicitly that no return value is ever provided and provide some rationale.  Since this lives in allback.js, I have to admit I was expecting it to work a bit more similarly.

* Maybe we add an optional debug feature so we can do latch.defer('reason').  So we could do latch.defer('header'), latch.defer('body'), latch.defer(attachmentIndex), etc.

Then later down the road when we're cursing we can just add a conditional that adds some console.logs or we could hook it up to structured logging or we could have it report timeouts/etc.

@jrburke @lightsofapollo @gaye thoughts on this construct?  I did also check https://github.com/visionmedia/co for having such a construct already, but I didn't see any.