Little too long for a comment, So I'm adding it as an answer.
Your CPU is a dual core CPU with a clock rate of 2.4GHz or 2400MHz per core. [1] That equates to 4800Mhz of total processing at any given time. Normally speaking, the operating system handles the management of a computer's resources. VMWare ESXi is a bare-metal operating system, aka a hypervisor. Basically that means there isn't a whole lot to it, which is why you can install ESXi to a 1GB SD card if you really wanted. [2]
When it comes to managing the CPU resources, there is something called a scheduler that governs how and when processes run on the CPU. ESXi has a scheduler built into it's kernel. [4] All is fine and well so long as there is enough processing available for the scheduler to give all of the processes running the CPU time that they need. A computer can begin to run slowly and be unresponsive if there is more work that needs to be done than it can readily process. When this occurs within ESXi, the kernel then begins to time-slice the physical CPU cores so that all the virtual machines get a chance to run what instructions they need to. [3]
Since we all know that computers work by magic, everything should just work, right?
Well lets look at it this way: You have two VMs currently and you have a 4800MHz of CPU power for all them to share. Oops, almost forgot about ESXi... So that means you have a total of three things running on the workstation. All three of those things are trying to use a portion of the total 4800MHz that's available. Good news is that under most circumstances there should be enough to go around because most operating systems do not utilize 100% of the CPU at all times.
Now for the bad news: You've told ESXi to give all 4800MHz of CPU time to the Windows guest VM regardless of it's availability. Effectively, that doesn't leave anything else for the other two to use. ESXi will then time-slice the physical CPUs so that the other things can run as well. This time-slicing doesn't really affect Untangle or ESXi because they are running just way they need to when they need to run. It does affect the Windows VM because when it's trying to do something, it's getting stopped part way through for numerous short intervals by the ESXi scheduler. A little interruption here or there isn't noticeable, but it's happening over and over again many many times a second, which may explain why the Windows VM is so sluggish at times.
Your coworker wasn't quite right on his diagnosis of your machine because it only has one socket and one CPU, although his recommended resolution was a step in the right direction. Taking the virtual CPU count down from 3 to 2 helped because you had "over-provisioned" your CPU resources. Basically your configuration in regards to CPU reservation is also called by the same name. To resolve this you need to move your reservation down to about 1000MHz and set a CPU limit of somewhere between 3000-3800MHz. Doing so may not solve all your slowness issues, but it should help.
Sources:
[1] http://ark.intel.com/products/27250/Intel-Core2-Duo-Processor-E6600-4M-Cache-2_40-GHz-1066-MHz-FSB [2] http://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.vsphere.install.doc/GUID-DEB8086A-306B-4239-BF76-E354679202FC.html [3] http://pubs.vmware.com/vsphere-55/index.jsp?topic=%2Fcom.vmware.vsphere.resmgmt.doc%2FGUID-DFFA3A31-9EDD-4FD6-B65C-86E18644373E.html [4] http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-CPU-Sched-Perf.pdf