How to easily show very long "canonical" name for each column in all reports?
Identifiers are limited to 63 bytes by default, which doesn't qualify as "extremely long". Quote from the manual:


  By default, NAMEDATALEN is 64 so the maximum identifier length is 63
  bytes. If this limit is problematic, it can be raised by changing the
  NAMEDATALEN constant in src/include/pg_config_manual.h


(and recompiling)

Besides the need to recompile that might give pause, increasing NAMEDATALEN by a large margin is not very good idea, because every single identifier stored in the catalog will consume that size, no matter its length.

To me, the only reasonable way to show arbitrary long column names would be to implement it in the client-side presentation layer. Storing the names themselves could be done in the SQL column comments as you suggest, or in your own custom metadata table. The presentation layer could retrieve that data at the start of the session and cache it so that it would be essentially transparent for the rest of the SQL.