Exacto

gracias al tutorial del amigo reiniertl fue que me anime a usar el RTOS del CCS y como dice en sus explicaciones
"Sin embargo yield() no es una función realmente poderosa, al menos en este RTOS, porque pone a dormir a la tarea durante un período completo del valor rate, que especificamos al declarar la función como una tarea del RTOS, y eso en ocasiones no es lo que deseamos. Aún así es mejor que el procesador de nuestro PIC esté haciendo algo útil y no perdiendo el tiempo."
Ok, en mi caso el valor del rate es 50ms y es un periodo demasiado corto para mostrar un msj en pantalla y como la verdad no se otra manera de parar la ejecucion de esa tarea por tiempos largos, le coloque las demoras.
Aunque se podria utilizar la funcion rtos_await de alguna manera para que se quede esperando a que se cumpla alguna condicion que seria algun contador de otra tarea, aunque no se si es una manera eficiente de realizar esa especia de pausa.
Cada tarea se ejecuta una sola vez y se deshabilita sola?
Supongo que hablas de las tareas de configuracion, si son esas si, se ejecutan una ves y al terminar de ejecurase de desabilitan, la unica tarea que siempre esta habilitada es la que se encarga de las luces y la aliemntacion de los peces.