These three options appear to cross over each other a little so would appreciate some clarification:
I suspect "Cleanup" does a "Compact" as it doesn't create a tmp file during the process.
The Clean up disks command is similar to the Compact command in the Workstation Pro virtual machine settings and the shrink command provided by VMware Tools. The Clean up disks command has these advantages:
Like physical disk drives, virtual hard disks can become fragmented. Defragmenting disks rearranges files, programs, and unused space on the virtual disk so that programs run faster and files open more quickly. Defragmenting does not reclaim unused space on a virtual disk.
There must be adequate free working space on the host system to defragment a virtual hard disk. If the disk is contained in a single file, for example, you need free space equal to the size of the disk file. Other virtual hard disk configurations require less free space. You cannot defragment a virtual hard disk while it is mapped or mounted.
Compacting a virtual hard disk can reclaim unused space in the virtual disk. Modern disks and operating systems are much more efficient at managing disk space than in the recent past. Therefore, do not expect the compacting procedure to return large amounts of disk space to the host drive.