MySQL server performance plummets
there are no queries in the slow log


Then, make sure they will be. One of the easiest ways to profile MySQL queries is through the slow log. if you find no slow queries is because you probably have a lot of them that take lower that 10 seconds to execute, or that are locked waiting (that time is not considered, "execution time"). Set long_query_time to a lower value, and if you want to profile fully the server, you can temporarily set it to 0 (Warning: may have a bin impact on your query performance), to log all your queries.

That, combined with aggregation tools like pt-query-digest is the 101 of server query optimization. There are other monitoring tools and techniques, but this is a good place to start. You may not identify 100% of the problems, but 90% in my experience.


  I feel pretty confident that MySQL is reaching a performance maximum.


That is an assumption without data supporting it. Get evidence first (a.k.a. profile), then evaluate options.


  each time [...]CPU % on mysql goes up by about 100%


That is not necessarily a bad thing. Resources are being used. The question is if they are doing it efficiently (that is the real question).