Not saying this is always the case, but typically random weirdness of that nature is indicative of hardware issues.
If you can get to a shell, running top -S might help figure out what is taking so long. Pay particular attention to RAM usage.
I'm not sure if it works during the boot process, but pressing Ctrl-T should print on the console what the current active process is when you're waiting on it.