I thought it was important for performances to use `process.nextTick` if not recursive, using `setImmediate` only if it is already flushing.