storing incoming data from BT to a char string

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.