ok, das scheint ein Bug zu sein:
die finish() Funktion in vendor/shopware/core/Content/Sitemap/Service/SitemapHandle.php wird zweimal hintereinander aufgerufen. Beim 2ten Mal sind aber die Dateien aus /tmp/ bereits gelöscht, somit werden die neuen Sitemap Dateien mit leeren Content geschrieben.
Als dirty workaround habe ich nun einfach das @unlink($tmpFile); rausgenommen. Ist zwar nicht schön, aber da sich die salesChannels und die Sprachen nicht dauernd ändern dürften, bleibt hat ne Datei in /tmp/ liegen. Gibt schlimmeres.
Außerdem liefert die Funktion $this->filesystem->has($this->tmpFiles[0]) auch nix zurück. Egal ob die Datei existiert oder nicht. Hab’s aber nicht ausgiebig getestet.
Wenn das jemand auch so sieht wie ich, könnte man ja einen Bug melden.
Schöne Grüße, Alex