Isn't it wonderful that we have redundant socket creation code so that you can't mess everything up with one patch?
This looks good to me. My primary comment would be whether we want to support filter control on a per port basis. That is, add something to HttpProxyPort for this. In that case you would move the global config option checking to HttpProxyPort::processOptions. That would check for the port option and if not found, use the global config setting (proxy.config.net.defer_accept). The local socket binding code would then always just check the HttpProxyPort data, or that would be passed down to the iocore socket code. I don't know enough about the defer accept use case to say if this would be a good idea.