In general, you can never be sure when the garbage collector will run, so in the absence of any other data, the most likely explanation is your first guess, that the GC hasn't collected the listener yet.
My RV documentation (from release 7.2) states that
A listener object continues listening for messages until the program destroys it. The method Listener.Destroy destroys a listener explicitly, immediately canceling interest in messages. You can also destroy a listener implicitly by deleting all references to it, but the garbage collector might introduce a delay before it destroys the object and cancels interest.
(highlighting mine). So it confirms your guess.