... and after one more installation, I get exit code 1. Don't ask me why.

The exit code is the number of font caches that fontconfig thinks it
failed to write.

In fact, I'm pretty sure it actually did successfully write the cache,
and the error message is bogus. You can test this by adding the -v flag
to the fc-cache invocation in zp_fontconfig_cache_1.sh:

/usr/libexec/fc-cache-1 -sv

I think you'll find that if you rerun zp_fontconfig_cache_1.sh after it
has reported "failed to write cache" on a certain font directory, it
will then give a message saying the cache is up to date and doesn't need
to be rewritten.