Pues yo veo varios problemas en esta implementación:
PROBELMA 1. No devolver el procesador al kernel
Este es el más grave de todos los problemas y debes evitarlo siempre. Máxime porque este RTOS no es expropiativo, así que es tu responsabilidad llamar a alguna función bloqueante. entiéndase rtos_yield(), rtos_wait(), rtos_await(), ... De todas ellas la más común es rtos_yield() y debe aparecer siempre al finalizar el código de tarea para que devuelvas el procesador al terminar de ejecutar el "trabajo actual".
PROBLEMA 2. Las tareas deben implementarse como un lazo cerrado con un ciclo FOR. Seguramente los tiempos se duplican en tu caso, tal como me ocurrió a mí recientemente al volver a utilizar este RTOS después de unos 8 años sin tocarlo. Bueno se duplicarán una vez añadas los rtos_yield al final de la función, pero entonces los tiempos no serán los especificados por tí.
Implementa las tareas así:
void Task()
{
/* Start up code */
/*Task Loop*/
for(;

{
/* Task Code*/
rtos_yield(); /* Return processor control to kernel */
}
} /* END TASK*/
PROBLEMA 3. Los pines del uC no deben utilizarse como semáforos. Los semáforos son estructuras del RTOS (aunque se utilice una variable entera para ello) y tienen reglas muy claras de cómo utilizarlos. Creo que todavía anda por el foro el curso de este RTOS que escribí entre 2006 y 2007.
PROBLEMA 4. Este es difícil de entender hasta que pases un tiempo programando micros y utilizando RTOS. La ejecución de código lleva tiempo y eso impacta en los instantes en que se activan las tareas. También los mecanismos de sincronización pueden alterar los períodos de ejecución de las tareas. Si por ejemplo defines una tarea para que se ejecute cada 10ms y ella debe esperar por un mensaje que debe entrar por el puerto serie, entonces lo más seguro es que no se ejecute cada 10ms como esperas sino que no se ejecutará hasta que llegue un mensaje. Este en realidad no es un problema de codificación sino un problema de comprensión que requiere tiempo y experiencia para asimilarlo.
Suerte y no dejes el RTOS, son una pasada. El otro día me puse a hacer una aplicación con este RTOS después de varios años sin tocarlo y la completé en unas 8 horas. Estimo que por los métodos tradicionales me habría tomado unos 4 ó 5 días.
Un saludo
Reinier