I've read the manual https://httpd.apache.org/docs/2.4/stopping.html#graceful
and believe I'm doing things "the right way". I know I've seen anecdotes and forum discussions where people complain of long restarts, but I'm confident that those are the result of some particular environment issue (like long-running child processes) or misconfiguration. I've also heard anecdotes that sometimes during a deployment of new MediaWiki versions (thousands of php files) that you might see weird bugs because a specific user request could get a "mixed" set of files (aka some from Vx and some from Vy). I assume the best way to handle roll-outs is to take a server out of rotation from the loadbalancer; update it; and then add it back in. But what about deployments where there is only one server? Short of stopping the server, I guess the technique there would be to make all file updates to a shadow directory, and then replace the symlink or mv the shadow directory into the real directory.
I can look at the scoreboard in server-status during my next deploy to check how things go. Or even better, I could install https://github.com/humbedooh/server-status
to keep an eye on things.
Still, if anyone on list can confirm their practice for rolling out changes to php.ini + clearing opcache + pushing new code to production under Apache and mod_php, that would be appreciated.