I have a similar issue, but reading through the referenced article, your idea of "silent" and my idea of "silent" appear to be different 🙂. Our app (C#, winforms, .Net 4.5, Win7) runs on dedicated hardware, and starts up and takes over at boot. It also assumes there is no one around running it, and we do not allow third party pop-ups. So, doing a "silent" install means that the updater does not get a UI. At all. All of the articles I saw talk about doing a silent check and exit if there is nothing, but if there is an update, popping up a nice big window. Or you add a UI element to the app and it displays a status.
At app start, we can check for updates, if one is found we can make the app wait while it downloads and restarts, that's not a problem. The problem we have found is that because our app starts before the wifi is available, much less connected, we are pretty picky about how that happens. ClickOnce (which we just put in, and will now probably be taking back out) almost works, but it does it's initialization at app start, and if there is no network, never checks again, which is obviously a big problem for us. Looking at all of your steps, everything I see pops up a progress UI, or displays something somewhere to the user.
Is it possible for the app to check for updates, download an update, and either apply it at next launch (and we're starting from a reg entry, not a click) or restart the app when it's at a "safe" spot, and leave all the UI stuff up to the app itself?