Oh, another point of attack. Always test your queries under just\timing. You can wrap up like this:
\timingselect count(*) from (subselect goes here);
I've been on a few machines where the cost of explain analyze itselfthrew the timing way off.