In the _sftp_channel function if for example an "Operation unsupported" occurs the error logging will be "Failed Directory Change".
This is due to the except IOError as err after opening the channel.
I propose to move the directory change error handling to the channel.chdir.
In case of an IOError also the channel is not closed. Not sure if this is by design.
If you want I can create PR.