I noticed, that the
var data = await sp.site.createCommunicationSite(title, 1033, false, url, descr, classification, customSiteDesign);
does not apply a custom site design!
It is not so fatal, because it can be mitigated with another sequence call e.g.
designData = await sp.siteDesigns.applySiteDesign(customSiteDesign, targetUrl);
but it needs more plumbing with errors handling and it might be not so fast. Do you have same experience, or did I something wrong?
(I don't know, it might be similar in case of modern team sites. I also noticed similar behavior when creating a new modern site with .NET PnP-Core library.)