Ok, so then the situation is like this:
1) You run your module and the worker queue for your thread has X items.
2) You decide to stop the server and the stop() method in your module is called.
3) Your stop() method enqueues a stop-command to your worker thread as command X+1 and returns.
4) Roxen starts destroying your module and it's variables.
5) Your worker thread processes commands and tries to access variables that have already been destroyed.
The ONLY way around this, is to ensure that your worker thread is stopped when you return from stop() in your module. 9 out of 10 times, other solutions are just plain wrong and should be avioded.