Fixed correct cleanup of mergeX when upstreams are asynchronous + added spec for that