The -e and -S options basically do the same things - cause the app server to terminate. When an app terminates, it can supply a 'status code' to the operating system. Such a status code is usually using within a script, where the script examines the status code and from there decides what to do next. So by terminating with -e, you can supply such a code (with -S, the default status code of 0 is used.)
The '-e' options becomes interesting only if you provide a script that does something with the return value. The default run scripts check for a status code of 10, in which case they restart the app server.