вы уже ответили на свой вопрос.
установите системную скорость мыши при вводе формы и сбросьте ее при выходе из формы.
сбросьте при закрытии приложения.
Сохраните исходную скорость мыши в некоторой статической переменной.
взгляните на эту тему: Динамически изменяя скорость мыши
вы можете поймать все необработаннымисключения:
// UI exceptions
Application.ThreadException += HandleErrorUI;
// Set the unhandled exception mode to force all Windows Forms errors
// to go through our handler.
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
// Add the event handler for handling non-UI thread exceptions to the event.
AppDomain.CurrentDomain.UnhandledException += HandleError;
// handle all task exceptions
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
Затем, если появляется какая-либо необработанная ошибка, вы сбрасываете скорость курсора мыши.