The idle task runs if no other task is ready to run. You need to find out why none of your tasks are ready to run for so long.
You might need to check if any of your tasks are getting stuck in a dead-lock waiting for another task that is stuck waiting on a task waiting for something.
Another thing to watch out for is that invalid ISR priorities can cause tasks to fall off the ready lists due to kernel data corruption.