Is there a memory leak here?

I still can't 100% get my head around how all the wiring works, but my general feeling is that we kick off this evalNode which immediately returns, but then there is this chain of handlers waiting on the blockingDefer to fire, which only happens if the thunk is called.

If the thunk is not called, is the deferred just hanging around forever? Maybe all references to it disappear once the thunk goes out of scope?