Jeg er stadig ikke sikker på, hvad der forårsager pausen, men det ser ud til, at det er synderen.
Under pausen, Cursor.nextObject bliver kaldt flere gange, før den første vender tilbage. Nogle af disse opkald returnerer null . Løsningen er at sikre dig Cursor.nextObject kaldes aldrig samtidigt.
if (this.cursor && !this.cursor_exec && this.length() < this.concurrency) {
this.cursor_exec = true;
this.cursor.nextObject(function(err, item) {
console.log(this.name + ': ' + (item ? item._id : null) + ' ' + (err ? err : null));
this.cursor_exec = false;
if (item) {
this.push(item);
} else {
delete this.cursor;
}
}.bind(this));
}