Если вы не хотите, чтобы вас прерывали, почему вы используете сигнал в реальном времени?
Где-то, либо в «Расширенном программировании Unix» Рокинда, либо в книге Стивена, был пример того, как это подделать. Вы записываете текущее время перед началом сна. После того, как сон заканчивается, вы проверяете, прошло ли необходимое количество времени, а если нет, вы начинаете новый сон. Поместите режим сна в цикл, который рассчитывает время перехода в режим сна и выдает это количество, а затем завершается по истечении требуемого времени.