The loop was a redirection to /index.php if the user typed an unknown URI. Problem was, /index.php itself had an unknown URI (the typo, an incorrectly spelled css file) within it. So index.php calls for a file, apache can't find it so redirects to index.php, which calls for a file which apache can't find, etc.
I think the mass-edit plugin triggered it because I had manually (in a shell) deleted an image from the album while at the same time editing the album in the web interface. Perhaps. I don't really know. I wasn't going to test it again because I have to get my host's support to kill all the processes. It takes hours to get them involved and meanwhile uses up my cpu quota.
At the time, I was sure that using `top` was a good indicator of where the problem lay, but really it was misleading. Sure, hitting the mass-edit button triggered it off, but so would have a user manually typing an invalid URI unrelated to zenphoto. It's just that, during the 30 minutes or so while I was investigating, no one did do that, so I got a false lead from `top`.