Particularly when some command throws an exception internal to beaker, but not always only then, beaker-proxy shows up as "[defunct]" in `ps aux` and a `service beaker-proxy restart` is needed. Nothing shows up in proxy.log.
The beaker-proxy daemon is a forking XMLRPC server, it forks a new process for every request (not very efficient, and I would like to change that, but that's a separate issue). The zombie processes you are seeing are probably those request handling processes, in which case it is perfectly normal and not a bug. If the *main* beaker-proxy process is dying then that is a bug. If that is indeed happening, you could try running beaker-proxy in the foreground (-f) and see if anything useful is printed to stderr.