Il sospetto che sia il Garbage Collector è venuto anche a me leggendo.
Premettendo che non ho chiaro il funzionamento del tuo software
posso consigliarti di approfondire l'argomento cercando su google
Implementing Disposable Pattern
o più in generale L'implementazione dell'interfaccia IDisposable in .Net
è possibile evitare che il GC distrugga il tuo oggetto con GC.SuppressFinalize
ma si deve aver chiaro che cosa si sta facendo e cmq seguire le linee guida della Microsoft
al riguardo.
Se risolvi il problema facci sapere come (senza tener conto del workaround dei tre minuti)