A strong answer
Low CPU means the process is not spending much time executing instructions; it does not mean requests are progressing. They may be waiting for a database connection, lock, remote service, disk, rate-limit token, or a worker slot. A queue can grow while CPUs remain idle if the constrained resource is elsewhere.
I would trace one slow request and split its time into ingress, connection acquisition, database execution, downstream calls, application compute, and response transfer. Compare histograms and queue depth, not only averages. Check whether p50 is stable while p95 or p99 grows, which can indicate contention or a small number of long waits.
If the database pool is saturated, increasing its size may push more concurrent work into a database that already has limited capacity. First identify why connections remain occupied, inspect transaction and query duration, and set bounded acquisition timeouts.
Follow-up direction
Propose a measurement that could falsify the pool-wait hypothesis before changing a production pool size.