code: function callOnFinish (original) {
      return function (callback) {
        if (concurrent === 0) {
          original.call(this, callback);
        } else {
          pendingFinish = original.bind(this, callback);
        }
      }
    }
docs: Flush is always called only after Final has finished to ensure that data from Final gets processed, so we only need one pending callback at a time