Can you check that the VM is really getting acpi messages? Shutdown does this:
Check that acpi is enabled in the VM, if not do a hard shutdown -> goto end
Issue acpi shutdown
Check if VM is already shutdown, if true goto end
If it passed half the timeout time issue another acpi shutdown, just in case
If less that timeout passed (120 seconds by default) goto 3
Issue a hard shutdown if force shutdown parameter is enabled. If not leave the VM in running state
It could happen that the VM did not have ACPI enabled, in that case the VM is just killed. It could also happen that acpid is not installed. In that case it could also be killed after timeout.