Trouble is what Magik suggests is very probably the problem. SSH login hanging for that long at that point is normally due to the server struggling to do a reverse DNS lookup on the client connecting to it.
This means your options are
- set USeDNS to no as suggested, but this isn't fixing the problem just avoiding it.
- add the client to the host file on the server, again not fixing the problem unless the other clients are listed there as well
- fix the reverse DNS lookup entry for the client on the DNS server that the server is looking too.
I'm not sure you'll get much meaningful logging out of putty like you would with running a normal verbose ssh connection (putty logging isn't great). You could try running the ssh server in the foreground with verbose logging and see where the handshake is hanging but 9/10 it will be due to it failing to reverse lookup the client.