creare un template che li fonda assieme...........
alla fine basta che fai la fusione di piu al posto che di due ...
un problema potrebbe essere dall ENORME tempo di elaborazione per 40mila file ma a istinto mi verrebbe da fare così

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xslaram name="xml1dafondere" select="''" />
<xslaram name="xml2dafondere" select="''" />
<xslaram name="root" select="''" />
<xsl:template match="/">
<xsl:variable name="contenitorexml1" select="document($xml1dafondere)" />
<xsl:variable name="contenitorexml2" select="document($xml2dafondere)" />
<xsl:element name="{$root}">
<xsl:copy-of select="$contenitorexml1/*/*" />
<xsl:copy-of select="$contenitorexml2/*/*" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>

spero di esser stato abbastanza chiaro