CheckForIllegalCrossThreadCalls = False
Remove that line of code and forget it even exists. You're setting yourself up for bugs that are very difficult to replicate and fix.
The timer doesn't stop. It's still running. The problem is your code has the thread that the timer event is firing on blocked with the dialog so the thread can't do anything else until the dialog is dismissed.
How do you fix it? Don't know. We can only see two lines of code and we know nothing of the design of your code. But, given that you put in the CheckForIllegalCrossThreadCalls line, your code is probably going to need to be rewritten to do things correctly instead of patching crap together to force it to work the wrong way.