OK, so I added an async-specific test. 

A side of effect of changing to an event rather than a callback registration function is that it became even harder to test in the context of use the grunt task in multi- mode. 

I look to your guidance there... I personally don't think that's a huge issue because I can't imagine a real world case where you'd be running this task against multiple configuration options and outputting multiple outputs for a single app. The problem of comes from the caching nature of `require` (once the task runs once, the app has been required and the specified ready event has long gone...