長く残酷な闘いの末、他の人が話している戦略を実行するだけでこの問題を修正したと思いますが、psycopg2接続関数自体を使用します:
from psycopg2 import connect
conn = connect(
database=database,
user=username,
password=password,
host=hostname,
port=port,
connect_timeout=3,
# https://www.postgresql.org/docs/9.3/libpq-connect.html
keepalives=1,
keepalives_idle=5,
keepalives_interval=2,
keepalives_count=2)
psycopg2が長時間実行されるクエリで一貫してハングするのを見ていましたが、問題は完全に解決されたようです。
この質問は古いため、これは新しい機能である可能性があることに注意してください。