Old version of ProFTPD doesn’t support the default key exchange set so sftp was timing out.

Couldn't read packet: Connection reset by peer

On the proftpd logs:

mod_sftp/0.9.8[6628]: message format error: unable to write 1025 bytes of mpint (buflen = 1023)  
mod_sftp/0.9.8[6628]: disconnecting (Application error)  

Client running verbose:

debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<8192<8192) sent  
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP  
Received disconnect from [...]: 11: Application error  

Server responses when running verbose:

debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<7680<8192) sent  
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP  

Note the mismatch in KEX sizes.

Fix by choosing a key exchange algorithm that is supported:
sftp -oKexAlgorithms=diffie-hellman-group1-sha1