Today I had a client using CURL for FTP uploads, but with a few servers the login takes forever.
The reason was that this FTP server is old and does not understand the EPSV command. So the CURL library waits for the timeout.
The solution is simply to disable that EPSV command and use the old PASV command. In CURL you simply set the OptionFTPUseEPSV to false for this server and login is again done in less than a second.