as the task your are describing seems doable with just SFTP, I would advice you to use Net::SFTP::Foreign that uses the native ssh binary to connect to the remote machines and so it is more robust than Net::SSH::Perl.
Actually the Net::SCP works very well. I can create an SCP session then put or get files with no errors or drop outs.
The SSH is needed to set up the remote machine prior to sending it files, and to execute distributed code remotely prior to retrieving results.