очень просто, запустился Dispose(), выполняется, пользователь/оркестратор прибил аппу и финалайзер срочно-решительно побежал по финалайзер queue.
более того, если диспоз уже вызван и вы в нём не работаете с полями объекта, он может не считаться рутом для ГЦ и его можно собрать