What would be actually useful is to be able to tab-complete even in the midst of a failed transaction block ... but savepoints as such won't get us there, and I have no good ideas about what would.
Why not have psql open two sessions to the backend, one with application_name 'psql_user' and one with application name "psql_meta" (or some such) and have all these queries executed on the psql_meta connection?