Try rp<<write the appropriate quit or exit commands to the FTP program, followed by rp<<writeEOF. (Although, as you say, the FTP program appears to ignore everything while the connection lost is hanging.)
When the JMP variable holding the RunProgram object (rp in my examples) is overwritten or destroyed by JMP ending, it will wait for the ftp program to finish. I don't think there is a way to send the ctrl-break through the FTP stdin.
I think the lost connection hang may last as long as 10 minutes by default and may be configurable; I'm not sure whether that would be in the FTP program or in a windows registry setting. For my test it seemed to hang about 1 minute.
All my experiments were done with the builtin windows FTP client. There are probably other clients that might have different features.
Craige