After a bit of RTFM, I think I've been calling the async done() function in the wrong place....