I just experienced the most exquisitely polite update experience with Notepad++[<—this should be a link]:
At load time (presumably triggered early to benefit from async wrt already waiting for initial load. The elegant part was that the update dialog pops under the active window without forcing me as the user who had some purpose beyond updating the tool.
Once I did what I had se out to do the update was exposed after closing the main window. This also allows the updates to complete without conflicting with the running application.
This should be best practices always. System maintenance should never (or rarely) interrupt user intent.