Wie du richtig vermutest, ist es nicht clever in einem Thread dauernd nachzufragen, ob Daten da sind; egal ob mit oder ohne sleep.
Ich nutze ICSOverbyte - dort würdest auf OnDataAvailable reagieren.
Auch bei
Indy kannst du dich benachrichtigen lassen, wenn Daten ankommen. Dies wurde u.a.
hier und
hier in
DP besprochen.
Schau dir mal
dieses Beispiel an.