fish: handle connection timeout early in Do()

There were conditions when Do() returned before checking the timeout at the
end, so the connection could hang. Moving the check earlier should solve the
problem. The check is done in the same way (early) in sftp.