Avec un peu d'aide, j'ai trouvé la solution dans la documentation Npgsql, ici .
Npgsql est livré par défaut avec des paramètres de délai d'attente pour la connexion et les commandes. Après un redémarrage de Windows, le premier accès à la table a été très lent, déclenchant le timeout de la commande.
Avec des paramètres supplémentaires sur la chaîne de connexion, j'ai pu modifier ces paramètres plus haut et résoudre mon problème :
connectionString += ";Timeout=180;Command Timeout=180";
Conseil bonus :une fonction Postgresql pg_sleep(seconds)
m'a aidé à reproduire le problème sans redémarrages réels. Très utile :
SELECT pg_sleep(60);