This happens because the process is not linear. The verification stage involves reading hundreds of thousands of small files (primarily in the StarCraft II\Variables.txt and CachedData folders). A single corrupted file can cause the verification algorithm to restart or stall.