1) The WaitToKillServiceTimeout controls how long the service controller waits for process-based services to terminate. AFAIK, it has no applicability to processes that are not under the control of the service controller (e.g., normal apps).
Somce the OP's issue is cleaning up the Terminal Service that is cleaning up apps, I suppose it could work for him.
2) Don't go editing ControlSet001 or any other number: use CurrentControlSet, which always points to the values actually being used by the running system.
Before I do anything, and I'm still not sure if I should try whats suggested... I would also like to mention that the above screenshot is not from my system. It is just one I found on Google to help clarify what screen I am seeing. The process might be HostsMan as I can recall seeing that once in the past while it was performing an automatic update while attempting to shutdown. I can't be sure what service it is at the moment because that window does not display what process is waiting to close. Perhaps because it just finished unloading. All I get is if I want to force a shutdown or click cancel for a few seconds before it disappears anyways. -- Remember that cool hidden "Graffiti Wall" here on BBR? After the name change I became the "owner", so to speak as it became: Dustyn's Wall »[Serious] RIP
Well I tried to modify the time from 12000 (default) to 24000 to 48000 with ZERO change. There was no additional grace time given, and the dark screen appears for the same amount of time before automatically disappearing. I'm not so sure if this is the correct registry key? I used CurrentControlSet.
More likely is that setting has no bearing on the matter at hand. The time limit established by that setting is the limit on how long the service controller will wait, after telling a service to shut down, for that service to report that it has finished shutting down. (After that, the service controller just says damn the torpedoes...)