Make SingleThreadEventExecutor independent from TaskScheduler

- Related issue: #817