This is a general question, not to solve a problem: Since MySQL uses one thread per connection. That means if you do IO, and it has to wait for it, the CPU that the thread runs on will be in IOWAIT. If you have as many MySQL threads as CPU threads, all CPUs will be in IOWAIT. But, that's not to say they can't do anything else. So as long as you still have IO scaling capacity, isn't the CPU use in panels like Amazon RDS misleading when you do many concurrent writes?
Part of this seems confirmed in Amazon RDS, where nowadays you see non-cpu load:
However, if you then go into Enhanced Monitoring, you things like this:
Or in the overview:
In other words, would htop with 'detailed cpu stats' on show a bunch of gray CPU bars indicating that's not actual CPU power that is maxed out? Like this (example, NOT the actual MySQL server; it's not about the numbers shown):