We did have a discussion thread on RTOSs a month back, and the conclusion was they were a total waste of time especially in the arduino context.They just suck the power out of a processor and move the debugging process into the fighting the RTOS region.
If you can run 40 things with calls to an update function from loop, you have soft real-time and this is a good approach....Also you can always find a way to avoid a RTOS by writing enough special purpose code. Often using a RTOS saves time if it will solve a problem without a lot of code. When I started doing embedded systems, the battle was over assembler or a higher level language. The answer is that both have there place and we still do some assembler. The same is true for RTOSs. Old timers seem to be flat out against using a RTOS. The fact is that often a RTOS is an easy way to solve a problem even on small chips. A RTOS like ChibiOS or FreeRTOS is useful if you can't call an update function with a short enough period or if you need to do something at precise intervals.