Самое простое организовать свой диспетчер, типа такого
while(1)
{
Task1();
Task2();
Task3():
};
где Taks твои процессы, каждый процесс быстро выполняет и ничего не ждет
Taks1()
{
static step=0;
switch(step)
{
case 0: SendCommand(); step=1; break; //отсылаем команду
case 1: if(port) { Led=1; step=0; break; //ждем ответа
};
};
};