This line was concurrent with the future returned:

listenerPromise.tryCompleteWith(interceptListen(listenAddress,  
upstreamListenerPromise.future))

This was not obvious first because it was called in an andThen block, but  
that itself does not enforce that interceptListen is completed before  
finishing the future provided to upstream. It just enforced that  
listenerPromise was wired together with the result of interceptListen  
before finishing the upstream future.