Wow, this took me a ton of time to fix, so hopefully it will help you if you stumble into the same problem.
I had my cap script working great yesterday, and I decided it was time to do some houskeeping on my server and clean up my .bashrc script so it had what I want in it. In the process of cleaning it up I left an "echo" statement in it. Harmless right. Well later that day when I went to deploy my Capistrano script hung at this spot:
sftp upload #<StringIO:0x12afa84> -> /u/apps/myapp/shared/system/maintenance.html
So I thought, maybe it was a permission problem, but couldnt figure it out. Tried everything, then I commented out the web.disable to see what would happen and the next item gave me a .bashrc error. So I went and removed the echo and sure enough everything is working great again. Saw this https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=56280 not sure it is the exact same thing but seems similar.