- setTimeout changed to process.nextTick
+ finish event logic