Fix complete-when-gzip race bug

When using gzip with StaticAssets on a large tree of files, files that are at the beginning of the "walk" but are large will cause async.js to complain "callback already called". This, because it takes a while for them to be compressed, only after which they are really "completed". However, @completed is set to "true" even before that happens.