This is not a normal FATAL from the server - that particular message is coming from pgcat, not from Postgres. So the normal FATAL/connection terminated/reconnect flow is not relevant here, as it is pgcat that is responsible for all this. The FATAL is being sent to the client only - pgcat is probably releasing that connection and fetching you a new one in the background. Try tweaking your idle_client_in_transaction_timeout setting in your pgcat config to duplicate/debug the behavior, and sprinkle some pg_backend_pid() calls in there.
Cheers, Greg
