It doesn't mean that the vm is using 2 cores of 4. its means that there is enough CPU time available for all 4 threads coming from the VM to get executed.
if the %ready value is high that means the vCPU threads are ready to run and waiting for CPU time on the actual physical core.
as long as these values are healthy there there is no issues with your vCPU allocation..
having said that over allocating vCPUs to VMs is also not good as there is additional scheduling overhead for every vCPU you add.
VMware recommends starting with 1 vCPU and increasing the value as per the needs. If you have concrete sizing done and believe that you will need 4 vCPU than its a design requirement