That’s quite a bit of boilerplate/overhead and hackiness with timing for a workaround. I guess it works, but both a destroyed event and a way to check the destroyed state would make this so much cleaner and easier to read and understand.
Here is the feature request for the Destroyed event by the way, it has a lot of support from developers too: