Move NewThreadWorker out from NewThreadScheduler

- Break out ScheduledAction from NewThreadWorker