I can only guess that your code is blocking/waiting somewhere that it should not.
SD will sometimes hang up for short periods, the size and class of the card make a difference, that's why video devices use class 10.
Hey CP/M! I cut teeth on CP/M starting 1981. Even got to play some with MP/M. Remember when 4 MHz was fast and 64K was big RAM?
I haven't dug into the SD library but a buffer's in there, you should be able to fill it and it should write in burst mode. If you can buffer incoming data at the same time (should be able if your code does not block, 115200 baud takes 86.7 usecs, 1388 cpu cycles per char) you won't need handshaking but I'd use it.
Have a look at RS485 for your transfer, higher speed / longer cable possible. The length of your wires and if they are shielded can make or break your xfer speed especially with weak TTL signals. Even MAX232 chips could speed up a too-long serial connect.