O estado TASK_INTERRUPTIBLE
tem a ver com a maneira pela qual uma tarefa é colocada em suspensão quando chama o agendador: seu nome é abreviação de "suspensão interrompível". Ele não controla a preempção (e, de fato, o Linux tinha TASK_INTERRUPTIBLE
muito antes de ser feito (opcionalmente) preemptível).
Preempção não é sono; uma tarefa em execução expulsa da CPU é executável, não está dormindo.
Haverá caos total se uma tarefa puder ser colocada em suspensão se for interrompida enquanto seu estado de suspensão estiver definido como TASK_INTERRUPTIBLE
ou outro tipo de suspensão.
Alguém em 2003 suspeitou da mesma coisa que eu acho que você está suspeitando e postou na lista de discussão do LKML:
Veja a continuação e discussão restante do desenvolvedor do Kernel, Rob Love.
Uma tarefa TASK_INTERRUPTIBLE
deve permanecer na fila de execução sob preempção. Os hacks que fazem isso acontecer, como existiam em 2003, são discutidos no tópico acima.