Задача прерывается самим прерыванием только в двух случаях
1. В случае, если вдруг оказалось что программа не поддерживает квантование своего времени - т.е. она не использует принципы и соглашения невытесняющей многозадачности, в результате после прихода прерывания этот факт будет отслежен (после того как отработает обработчик прерывания и передаст управление на диспетчер потоков). А принципы и соглашения следующие: если есть возможность выполнив какую то элементарную операцию отдать управление системе, то это надо делать; элементарная операция является таковой если она длится менее 5 мсек.
2. Программа следует указанным правилам и соглашениям, но просто она попала на границу псевдокванта. В таком случае всё равно происходит передача управления на диспетчер потоков и никаких последствий.
И вообще, что за "упрощизм" в моде у программистов?
Предлагается два подхода:
1. "Упрощенческий". Обработчик прерываний и диспетчер потоков (читай: переключатель контекстов потоков) совмешены в одно единое целое. Тогда имеем все указанные проблемы и продолжаем дальше заниматься "упрощизмом".
2. Классический подход. Обработчик прерываний и диспетчер потоков разные программы, взаимодействующие по классическим правилам. В этом случае никаких проблем нет.