Just for the knowledgebase:
Found the answer in the PHP archives. Apache creates a series of threads to service requests. The last active thread will always be used to handle a new request. Since, to start with, each thread has never seen the db before, it forces a new connection.
Connections are only reused when the value in MaxThreadsPerChild (Apache config file) is reached.
It defaults to 64 (I think). Lowering it to something like 5 makes things much better. Apparently if these threads are ever saturated by requests, a new process with 5 more threads will be created. (so I'm not actually limited to 5 simultanious users!)
I still don't know when the persistent db connections will die though... just keep waiting I guess... :-) 20 minutes and counting.
John