è ci un motivo che state usando un Threading.Timer contro lo System.Timer? Un threading.timer il metodo di CheckForPastDue sta eseguendo su un altro filetto allora quello che lo ha generato. ciò a volte causa le edizioni per la cosa semplice che state provando a compire. Ho avuto una simile edizione ed usando lo System.Timer ha funzionato per me.