Ответ: переключение задачи происходит в двух случаях: 1) процесс сам возвращает управление операционной системе; 2) планировщик отбирает управление по таймеру. Если задача "зависает", то переключение происходит только вторым способом, поэтому задача получает все процессорное время, которое ей выделяет планировщик. Линукс к твоему сведению работает точно так же.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)