I have a test program that creates a Process class, sets the .Exited event handler to the p1.exited() method.
I set the FileName to iexplore.exe. I call Start() on the object. When I close Windows Explorer, the p1.exited() method is called.
When I set the FileName to word.lnk, it never hits the exited() method.
When I set the FileName to the actual .exe, the exited() method is hit.
I was initially going to post this as a question, but while formatting the question I came up with the solution.
So, in case someone else has this problem, I've also solved it.