Please read this carefully:
http://wiki.postgresql.org/wiki/Guide_to_reporting_problems
You haven't told us what version of PostgreSQL you're running, in
spite of my asking that you post the results of a query which would
have told us that and other useful information. There are a number
of things this could be, alone or in combination, but you have not
provided anywhere near enough factual information to rule much in
or out. The only evidence that you have provided suggests that at
least part of your problem has been bloat, but you dismissed that
out of hand without showing any sign that you understand that issue
or have checked for it.
In follow-ups, please try to avoid hand-wavy terms like "forever";
tell us whether you waited a minute, an hour, ten days, whatever
"forever" actually was, along with any observations on CPU and disk
usage during this time. You didn't show the active query in your
listings -- were those taking during the time the query was hanging?
-Kevin