I've looked at Brion Vibber's "ps auxwww" output (thanks!!). Although the MySQL daemons take up the lion's share of memory, they don't take much of the %CPU, even in aggregate. Instead, the CPU seems to be taken up by the Apache daemons (/usr/local/apache/bin/httpd). It doesn't appear that one daemon takes up all the time; it appears spread out to some extent (a little bit by each, though there IS a lot of variance). Presumably this is due to each one executing the PHP scripts.
Clearly speeding execution of the PHP scripts would help. One way is to reduce the work they have to do (e.g., caching the HTML). Another is coding the hotspot (e.g., as a loaded C module). But doing it right requires identifying what the hotspot is in the PHP scripts.
Is there a way to enable performance monitoring in PHP, like gprof in C, to figure out where the hotspots in the PHP scripts are? Failing that, I guess you could insert monitoring points in various places (painful, painful).
Of course, this doesn't mean that moving wikitext from MySQL to the filesystem, or using the filesystem as an HTML cache, is a bad idea. I don't know how transmitting data from MySQL to the scripts is accounted for; the transit time betwen script and MySQL may be hidden in the script performance measures.