This is an interesting issue when designing half-duplex systems: when you’re done transmitting you need to quickly switch to receive, but because the UART buffers at least one character (it will return to your code when it starts, not finishes, sending the last character), how do you know when you’re actually done transmitting? I don’t know exactly how the Arduino Serial driver works, but it might be worth digging into the source code (yay open source!) to determine if and how it is buffering characters before sending them. You might also look at the 2560 datasheet, as there is likely a UART status bit that is asserted when the UART is busy transmitting, which is something you could busy-wait on to deassert RTS immediately after the last bit is sent. With the above knowledge, you might be able to tighten things up in your code, or even hack on the Serial driver to automatically assert RTS while you’re sending data and deassert it when you’re done.
Arduino is great at making the easy stuff easy. Here you’re pushing it into something new, which may take a bit of work, but the nice thing about open source is that they give you the freedom to do so. Good luck and let the world know your solution to make it easier for the next person who wants to do this!