From the "idle thoughts in the middle of the night" department:
I don't know if this has come up before exactly, but is it possible that
we could get a performance gain from building multiple indexes from a
single sequential pass over the base table? If so, that would probably
give us a potential performance improvement in pg_restore quite apart
from the projected improvement to be got from running several steps in
parallel processes. The grammar might look a bit ugly, but I'm sure we
could finesse that.
cheers
andrew