I am speaking specifically of a service as opposed to an application.
Environment.Exit(0) and Stop() both give a message box saying they were stopped unexpectedly (even if there's no actual error given).
The goal is to start a service on startup (it must be a service, not an app), have it perform a small task, and then exit. It should simply exit cleanly without a message box.