Does Serial.readBytes() halt your code? If it does, and it is not tolerable, I
It's not my code, it's your code written properly.Of course it waits - serial comms are slow.
serialEvent is a useful way of building strings behind the scenes.
Your new example won't work correctly either; think about the length of time between receiving characters.