Z pewną pomocą znalazłem rozwiązanie w dokumentacji Npgsql, tutaj .
Npgsql domyślnie zawiera pewne parametry limitu czasu dla połączenia i poleceń. Po ponownym uruchomieniu systemu Windows pierwszy dostęp do tabeli był bardzo powolny, powodując przekroczenie limitu czasu polecenia.
Dzięki dodatkowym parametrom w ciągu połączenia mogłem zmienić te ustawienia wyżej i rozwiązać mój problem:
connectionString += ";Timeout=180;Command Timeout=180";
Wskazówka bonusowa :funkcja Postgresql pg_sleep(seconds)
pomógł mi odtworzyć problem bez ponownego uruchamiania. Bardzo pomocne:
SELECT pg_sleep(60);