Im not experienced enough on UART to really help you . . . but I have a few thoughts . . .
I don't believe there are any microcontrollers that can use two UART's simultaneously. So if you receive data on UART 1 while you are sending data on UART 2, the data on UART 1 will be lost. I don't see how you can buffer data while your mcu is busy transmitting data . . .
If you can time when you aren't receiving data, and transmit only in that time, then your idea seems to be good. Perhaps use a fixed timer interrupt after each received stream or something to know when to start listening again . . .
Oh and I don't see any reason to use cts and rts . . . but I'm definitely no expert on this . . .