It appears that the site's been back to its usual levels of responsiveness in the past 18 or so hours.
After investigating the site logs, I believe I was wrong about the slowness being limited to certain pages. I just hadn't tested enough before I made that assessment.
Also, it looks like the slowness was caused by several extremely long page loads happening at once, mainly browse patches and browse images in some of the site's larger sources. This situation used to mostly happen with annotation exports, until I improved performance of those exports sometime last year. So now the page-loads bottleneck has moved, and with a bit of bad luck that bottleneck was exposed in the past few days.
I still want to analyze the site logs from another angle to double check that this new assessment is correct, but assuming it is, I'll get to work on optimizing browse patches and browse images. I've had a few ideas for this for a while now, but never got around to them because they didn't seem like as big of a priority before.
I'll also double check if there are any sources that are of real outlier size and see if anything needs to be done about that, such as splitting up the source. Note that I've never actually proceeded with such an action before on CoralNet, and I'd certainly contact any source admins for a discussion before proceeding to do so, but just giving a heads up that it might be necessary in some cases.