Running synchronous tasks on separate thread with FIFO - C#