Probably we need to open a GitHub issue to investigate more!
Hi! Iām on the go-ipfs team and work on the data transfer subsystem Bitswap (though fairly recently). Iād be happy to provide some assistance on the slowness vis a vis downloading. Iād love to get some specifics about your setup and then maybe we can go ahead and file a Github issue if there if itās a bug in the code.
Just curious are you guys both running IPFS 0.4.18 (the most recent released version)? Are either of you building from source? (i.e. master on the IPFS github repo)?
I tried replicating on my machine but right now I have the same connection issues as you started off with and canāt diagnose the slowness as a result. (i.e. @john1deer I canāt ping your machine - I can ping the relay you gave but it wonāt let me swarm connect to your peer).
I did some tests here: Proposal: Peer Hint URI scheme
Iām happy to help though. 
I have 0.4.18 yes. Not building from source.
0.4.18 (not source)
Restarted daemon just now (with everything turned on):
$ ipfs daemon
Initializing daemonā¦
go-ipfs version: 0.4.18-
Repo version: 7
System version: amd64/darwin
Golang version: go1.11.1
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/127.0.0.1/udp/4001/quic
Swarm listening on /ip4/192.168.201.217/tcp/4001
Swarm listening on /ip4/192.168.201.217/udp/4001/quic
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip4/127.0.0.1/udp/4001/quic
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready
Sorry for slow reply. Iād be include to wait for 0.4.19 to get published. BS has undergone extensive changes that should mitigate this kind of issue.
Iām assuming BS = BitSwap?
The issue here seems to be NAT traversal, although this could be fixed by adding a block ārelayā functionality to BitSwap (if I have a route to a block on a peerās wantlist - I can fetch it for the peer).