Host is just a framework that allows other processes to run. For example if you ever press Ctrl_Shift_Esc and see your task manager, you'll see things like "Service Task Host" as well, that's the hosting framework system that allows service tasks to run. It's basically a shared framework so that every application doesn't have to needlessly duplicate all the same base level of functionality (thereby using extra resources, drive space, etc.). They can all share one host.
Anyway, this can make troubleshooting sometimes difficult because you don't know exactly which task is delaying your shutdown. One way to help troubleshoot is to limit how many background tasks are active. There's a great many ways to do this, but I wrote a basic primer about it here.
Microsoft also makes a tool called AutoRuns that can help identify software that automatically runs in the background, and easily disable (or re-enable later) them to help find which one is causing a problem by process of elimination.