Forget the delay(100) it doesn't make any difference.
It is true that if the "if" is true for both Fio only 'H' are sent and none of the Fio's checks for serial input, so maybe when "if" becomes false then
the buffer will be filled up with H's
.
However, I thought
incomingByte = Serial.read();
was supposed to read the oldest byte, that is an 'L' if an 'L' arrives even after many 'H'.