En realidad no hacen otra cosa que implementar un planificador "Single Excecutive". Es una forma muy simple de hacer multitarea cooperativa.
Pero no se equivoquen, que por ser simples no son menos potentes. Son como cualquier método, tienen ventajas y desventajas.
Tal como se ha comentado son muy efectivos en sistemas con restricciones muy severas en cuanto a recursos y abstraen al programdor de la necesidad de tener que hacer él toda la planificación.
Dado que todo sistema que no sea un While end, sin ISR, y llamadas a función requiere algún tipo de planificador, todos nosotros en algún momento hemos hecho un planificador, malo, bueno, pésimo... abismal. Así que a mi juicio lo mejor es buscarse una herramienta que abstraiga al programador de tener que hacer "donkey-work" y dedicarse a lo útil, código de aplicación.
Bienvenidos los protothread.
Mi consejo para PICS, no los usen más allá de los PIC16, ni por debajo de los PIC08.
Saludos
Reinier