Here's the funny thing about Windows 8: If you install Windows 7 and Windows 8 on identical hardware with identical software, and if you measure the bootup time by how long it takes for all background programs to load into memory, then more than likely you will not record a difference between the 2 OSes.
Allow me to explain:
Windows 8 boot process:
1) During the startup splash screen
- Loads drivers
- Loads the bare minimum for user login and a functional GUI (essential Windows services, ect.)
2) User login process
3) After user login:
- Loads the rest of the services (svchost.exe) (given top priority)
- Loads background programs set to run at startup (Fences, Skype, ect.)
Windows 7 boot process:
1) During the startup splash screen
- Loads drivers
- Loads every single Windows service specified to run at startup
2) User login process
3) After user login process
- Loads background programs set to run at startup (Fences, Skype, ect.)
Windows 8 gives you the illusion that your computer fully started up faster, when all it did is prioritize the GUI showing up first and foremost.
This is exactly why mark28967 noticed that svchost.exe took 15 seconds before Fences had the opportunity to load. Svchost.exe, btw, is a umbrella program that houses all the Windows services.
For users of Start8, you'll notice that the start button is immediately available when the desktop is loaded. If you take a look at how the program actually starts up.....it has its own Windows service, if you take a look in services.msc. More than likely Stardock was able to give Start8 priority over svchost.exe through the help of this service. So in conclusion, I see only 2 ways to fix this:
1) Do to Fences as they did to Start8 (create a Windows service)
2) Find some sort of way to delay the execution of svchost.exe just enough to let Fences load first.