I'm not totally happy with how these two `limit=0` clauses turned out.  The gist is that we need to hear from every worker before we can compute the pending count reliably, even if we've already reached the limit.  There's a subtlety in that we have to bump the reported pending count by 1 in the case of a received row because we're actually discarding the row.  We don't need to do the same for the `complete` message because the only way we're processing that here is if there weren't actually any results from that shard.