"Should it not stop trying to open any new connection at this point since each apache process has its 2 open connections?"
Kirk is right, pconnect is not very reliable in these kind of things.
In it's defence however:
PHP can only stop trying to open new connections if it does not need more open connections. If you run two instances of your script and they happen to end up on the same httpd child, then PHP has no choice but to open more connections. And at that point, your max_persistant=2 forces the error.