Actors arent destroyed immediatly. They are marked as to be garbage collected and over time the memory will be freed.
The only time you need to write a manual destructor is when you
use objects that inherit from uobject or actors created by NewObject in c++.
Actors and components should clean memory after their own destruction.
Add a print string before the actor is destroyed and see if it even fires the node. Perhaps the bool next to the controlling branch has a wrong value.