The statistics report with STACK questions is very slow, because it is effectively having to re-evaluate every response by every student, which is a lot of work. The cache should only makes things faster, and lots of cache activity is a symptom, not a cause, of the fact that you have asked Moodle/STACK to do a log of processing.
However, if it is using whole-table locking of the cache table, that probably would be bad (except that the stats processing is basically just a single thread, so there might not actually be much concurrency). I don't know why MySQL would behave like that, but then I am not an expert. My answer to any database question is "Use Postgres" .
It would be worth looking in to that, and see if you can work out what MySQL is doing, why, and most importantly, are there any quick wins to make it work better.