Task.Factory.StartNew not executing the task when deployed

Sometimes this kind of behaviour is an indication of an overloaded ThreadPool.

Seeing as these are long running/blocking tasks, they should not be scheduled to run in the ThreadPool, which is where Task.Factory.StartNew will be sending them using the default TaskScheduler.

IMO, Task.Factory.StartNew is probably not best suited to this, and you'd be better off spinning up your own threads to run these loops.

ThreadStart action=()=>{
    //do your thing
Thread thread=new Thread(action){IsBackground=true};