We stop IIS, then manually go in and shutdown the application pools. We have two - one runs our iOS/macOS .mobileconfig generator and the other runs SmarterMail. Both are set to be "always on" instead of "demand-start" - so shutting down IIS doesn't stop the Application Pools from staying in memory.
Then we shutdown the SmarterMail MailService.
We wait until everything is cleared from "active tasks" plus about 30 seconds - then we run the installer.
The Installer usually starts SmarterMail service on it's own. After installer clears from memory, we restart IIS and turn the application pools back on.
The whole process takes less than 3 minutes usually. We currently service about 400 mailboxes across 90 domains on that server (for reference).
We've not had an upgrade issue - only the random bug that appears from whatever SM version we are on that almost always is triaged in the next update.
MailEnable survivor / convert --