Далаю так, чтобы на один вызов poll() слишком много времени не уходило. Тогда тормозов нет. До сих пор жёсткие ограничения по времени делать не приходилось, поэтому всё делается легко и непринуждённо. Для структурирования кода очень помогают protothreads. Ну и совсем нет заморочек с синхронизацией, в отличие от этих самых RTOS.