Com alguma ajuda, encontrei a solução nos documentos do Npgsql, aqui .
O Npgsql por padrão vem com alguns parâmetros de tempo limite para conexão e comandos. Após uma reinicialização do Windows, o primeiro acesso à tabela era muito lento, acionando o tempo limite do comando.
Com parâmetros adicionais na string de conexão, consegui alterar essas configurações para cima e resolver meu problema:
connectionString += ";Timeout=180;Command Timeout=180";
Dica de bônus :uma função Postgresql
pg_sleep(seconds)
me ajudou a reproduzir o problema sem reinicializações reais. Muito útil:SELECT pg_sleep(60);