I see this issue is quite old but we are still having some problems. In your answer, you say that "Additional software is needed to check when all data bits are really sent to line." Can you explain how to do it?
I have seen there is a bit called TXFE (Transmit Buffer FIFO empty) inside the UART Status Register 2 (UARTx_USR2) that could help us but I don't know how to read that register in the app level (over the linux kernel)
For us, the solution of adding a RS232/RS485 converter is not possible because of the hardware.