defer add listenners, add options.refork, optional unexpectedExit event

should be global.setImmediate