There has been a patch to extend the COPY code with pluggable APIs, adding callbacks at start, end, and for each row processed: https://commitfest.postgresql.org/49/4681/.
I'd guess that this may fit your purpose to add a custom format without having to fork upstream.
Using the pg_duckdb[1] is an option, if you can install extensions on your setup.
I wonder how open postgres is and what kind of pull requests postgres team considers? I'd like to learn how to contribute to PG in baby steps and eventually get to a place where I could contribute substantial features.