Hier also das Ergebnis meiner Sichtung:
1.) Ich würde nicht penipelig vergleichen, ob das empfangene Echo mit dem gesendeten Kommando geauestens übereinstimmt. Einfach Echo empfangen und ab damit ins Nirwana.
2) Die Gesamtdauer setzt sich zusammen aus der Summe von Kommando senden, Daten anfordern, Daten auswerten. Man kann das Auswerten in einer parallelen unabhängigen Verbrauchrschleife machen. Man hat dann die Schleifen "Daten anfordern/auswerten" und "Daten auswerten". Die Schleifen synchronisieren sich gegenseitig über die Queue-Funktionen. Die Zykluszeit ist nicht mehr bestimmt durch die Summe aller Zeiten, sondern durch die langsamere der beiden Schleifen.