Quindi, dopo aver fatto qualche ricerca in più e aver chiesto agli sviluppatori di Postgres, sembra che al momento non sia possibile ottenere il codice di errore da PQconnectdbParams().
Questo sembra essere un difetto della stessa libpq che non tenta di assegnare codici di errore SQLState per gli errori che rileva internamente (come un nome host sconosciuto).
Questo sembra essere nell'elenco delle cose da fare per sviluppatori di Postgres ma non è una priorità.
TL;DR:se hai intenzione di usare libpq, impara a convivere con il messaggio di errore di testo (in qualunque lingua sia localizzato).