First sorry for answering on this old thread. But from my experience I can not confirm the statement that you can trust pg_dump/
I switched some month ago for a project to postgres. And of course I made all backups with pg_dump from the live system as suggested. But after the first backup check I figured out that all dumps having different sizes. After restoring random some of them, I figured out that some tables are missing. So I started to analyze why this is happen and I figured out that if the overlaying application, e.g. app servers, locking some tables and pg_dump is not waiting until they are released. I was needed every time to stop the server for the backup period which is not a good solution.
So I still looking for a fix but as I said I tottally disagree with the statement that you can trust pg_dump.