dnet_upstream_t sends reply/ack back to client in destructor, since it can receive
error or some data. But if there is no application to queue, we return error
and send ack. This second ack is actually the right one, but it is discarded on client.

To fix this issue we postpone upstream creation after we know application exists.