Да все уже получилось не так, как вначале задумавылось

Время реакции на прерывание (имеется ввиду задержка начала выполнения первых полезных инструкций кода прерывания) в preemtive RTOS типа AvrX или smcRTOS слишком большое (теоретически если процессор уже находится в состоянии переключения на какую любо задачу то 2*время_полн_сохр_контекста + время_полн_вост_контекста) и это вместо того чтобы просто сделать какой либо ответ на прерывании в самом теле процедуры и выставить семафор, и лучше счетный, что бы знать сколько надо еще потом пропущенных прерываний обслужить.
Недостаток в этом случае в том, что процедура прерывания будет выполнятся в контексте текущей задачи, и если задач несколько , то в preemtive RTOS надо еще в каждой из них отдельно зарезервировать добавочную оперативную память. Простые быстрообслуживаемые прерывания без вызова функций RTOS тоже выполняются в контексте любой текущей задачи, для них тоже надо память.
В итоге альтернативе простой cooperative RTOS не нашел, все преимущества preemtive при большом колличестве задач или недостатке памяти и требовании скоростного обслуживания прерываний испарились.
Да и лишние 300 байт кода на поддержку preemtive по сравнению cooperative, когда все и так еле лезет, не лишние.