10-20 active, concurrent connections is way below any CPU load problem you should have with 48 available vCPUs. You never explicitly said what the load is, so what is it in the context of the 1,5,15?
LA 10-15 all time, servers are really overprovisioned (2-3x by available CPU resources) because an application is quite sensitive to the database latency.
And during these latency spikes - EXECUTE work without any issues (e.g. only PARSE/BIND suck).