How do I explain the large difference between page execution time and reasonable query execution time?
Here is an easy calculation:

page_execution_time = query_time + php_time;


So basically you seem to do quite a lot of stuff in php.
Same basic stuff you could do


Use some opcode cache, for example apc
Find out what needs a lot of time using xhprof