Scott,
I only traced ftp_putraw() in debug from the ftp_put() that I am using. This in a sense all my application does:
sess = ftp_conn(ip:user:pw);
ftp_binaryMode(sess: *on);
ftp_put(sess:remoteFile:localFilel);
ftp_quit(sess);
On connect I see one ftp job in netstat open.
On ftp_put() I see a second socket opened for data.
On ftp_quit() I see the first socket close, but the one created from ftp_put() stays open and eventually does time out and end after a minute or 2 (I didn't time it exactly).
I hope this helps! I mean, I know I can go in and updated it, but I wanted to make sure I'm not doing something wrong on my end.