programar arduino por tareas pendientes o timers?

Aunque una cosa, no se si sera de ayuda ya que no se mucho de programación en C/C++ de Arduino, pero leyendo lo que querías hacer se me ha ocurrido usar una estructura de la función switch / case de manera anidada, en plan, hago un primer case para chequear si hay algo en primer byte o y un case para el segundo y de ahí establezco una prioridad entre primer o segundo nivel. Aunque esta claro que solo con esta estructura pueden salir muchas posibilidades si se sigue separando posibilidades en estructura de arbol sacando varias ramas y en cada una de ellas al final esta una tarea, supongo que usando alguna que otra estructura por el medio (como do while, para que mientras esta en primer nivel con tareas no se meta ha analizar el segundo) supongo que algo se podría implementar. No se si estoy dando palos de ciego, o algo de lo que te he dicho te pueda servir...pero bueno me ha surgido la idea y digo voy a comentarsela xDD

Si no vale para nada borra mi comentario sin problema! Un saludo, y suerte de nuevo.