Question: We currently have a 'global catch all exceptions' section in our application. When an uncaught exception is thrown, the stack trace is displayed and the application continues running.

More often than not, this leaves the state of the application invalid going forward. Especially with NullReferenceExceptions, and threading exceptions being the cause.

I decided to have the application log the exception in the 'global' section and shutdown and restart. This was met with criticism from management - who asserted that the user should choose to select whether or not to restart under these conditions, since it never shut down before. (*Though I tried my best to explain that the issue was allowing the app to continue running in the first place)*.

I am looking for things to watch out for now, and specific approaches I can take to handle code that is now allowed to continue to run while in an invalid state.

Answer: 
I can understand the point that your application managers are trying to make, that simply shutting down or restarting immediately upon encountering an unexpected error can confuse a user. You always want to give the user information about what happened and if possible give them a choice on how they would like to handle it.

You may also want to try and localize the problem to a particular component that may perhaps be reloaded or re-synced so as to prevent other working areas of the application from needing to be brought down?

On the other hand, if by them continuing to work and possibly corrupting persisted data which could cause future problems for themselves or others, OR if this bad or corrupted data needs manual intervention to clean up in some way then you have a case for shutting the application down as soon as possible. Just make sure that it is informative and graceful (... as graceful as an application crash could possibly be :)

Perhaps your efforts are better focused on stabilizing the application to where unexpected exceptions occur far less, and expected exceptions occur far greater.
Depending on the situation there's an answer I used once: If something goes haywire but it's not a certain fatality I reset the document name--if the work gets corrupted it wouldn't overwrite the original. It was only intended to allow them time for a graceful exit.