Cannot Utilize Maximum CPU and Memory Usage for MySQL
The authors of High Performance MySQL describe part of your problem fairly succinctly (p. 234):


  MySQL can’t execute a single query in parallel on many CPUs. This is a feature offered
  by some other database servers, but not MySQL.


Running a single stored procedure will use no more than 1 of your CPU cores for executing queries, with a little extra on other cores being used by various background and worker threads, such as those performing I/O. MySQL will only really use the full power of a multi-core or multi-processor system when there are multiple queries running at once.

If you're seeing 30% of 1 core being used, that indicates a potential problem, but 1.2 cores out of 4 for a single query is quite normal.