@dgr, I find myself using scheduled tasks more and more as well. If these hooks are available to the built in task scheduler, there is no reason that ConfigMgr can't tie in with those same hooks. For example, in addition to startup/shutdown and logon/logoff, Task Scheduler can kick off based on being idle for a specified period of time, on an event ID match, on session connect/disconnect, and workstation lock / unlock. Imagine the possibilities if we could key off those same options within ConfigMgr!

Whenever possible, we avoid notifying the end user of changes being made to their computer, and this added flexibility gives us control of involving the end user only when we want to rather than when we have to.

We've done the task scheduler route in the past a few times and it generally works pretty well but needs a bunch of boilerplate code behind it to mitigate a number of possible failure/looping install issues.

This feature would be a VERY helpful. I would add, we should be able to also force the logoff to allow the application to install on the deadline.

This would greatly assist in upgrading applications that are running all of the time.

One real life example was the upgrade of office, our biggest failure event was due to users running/launching office apps during the upgrade (word is off not outlook right???).

It is vital to be able to run applications when a user cannot interfere, just like windows updates. As a matter of fact I would LOVE it if we had the option to run apps just like updates do at logon/off.

I think the real key here is adding more events that can kick off an application (or even package). I'm sure we could make a more comprehensive list, but here's just a few examples that would be awesome to have:

Am I missing something here? Doesn't the scheduling option allow "As soon as possible", "Log on" or "Log Off". I only ever use the first option, so maybe the other two don't work ... or maybe I'm right off track?

Now only you can do is select "Install when no user is logged on", but this is no way if you have per-user applications.
During user logon ccmexec may not be started (because have Delayed start), but during user logoff is running... so this should be option how to perform this operation.
Another way how to do this is an idea of Roger G.:
Check for running .exe, give the User the option to postpone
https://configurationmanager.uservoice.com/forums/300492-ideas/suggestions/8340111-check-for-running-exe-give-the-user-the-option-tThis can be another solution for missing installation or uninstallation option of applications during user logon or logoff. Application will check if superseded app is running, if not the upgrade will start.