List all column names for multi-joined table
I'd like to somehow get the name of all columns in this new table.


You can create a temporary view, which registers the row type. Then query either the information schema like you tried or the system catalog pg_attribute:

CREATE TEMP VIEW tmp_v1 AS SELECT ...;  -- your query here

SELECT attname
FROM   pg_attribute
WHERE  attrelid = 'pg_temp.tmp_v1'::regclass;


Returns the desired list of column names.

Catalog tables or information schema? See:


Query to return output column names and data types of a query, table or view


The temporary view is only visible inside your current session and dropped at its end. (Or you can drop it manually.)



In psql you could use the meta-command \gdesc:

test=# SELECT 1 AS foo \gdesc
 Column |  Type
--------+---------
 foo    | integer


The manual:


  \gdesc
  
  Shows the description (that is, the column names and data types) of
  the result of the current query buffer. The query is not actually
  executed; however, if it contains some type of syntax error, that
  error will be reported in the normal way.
  
  If the current query buffer is empty, the most recently sent query is described instead.


So you can even execute a bare \gdesc after running the query to get a "table description" for the executed query.