I want to clear up that the reason for stuck at 99% is mostly due to one big reason: releasing resources (that may never release) or updating component registries. Or otherwise an application is trying to talk to the OS and it's not responding. Checksums seems plausible but I don't think thats whats happening in most cases.