I have run directly into the frustration of wanting an async deinit and an isolated deinit, but I'm -1. I think this special-cases the concurrency model in a way that will constrain further evolution (I can imagine a proposal for some cool isolation ergonomics proposal getting rejected with "ah but it would interfere with isolated deinits") and opens up the doors for even more usage of deinit
for resource management, which my betters have pointed out isn't a good idea. Deinits are non-local reasoning, spooky action at a distance, and they don't need to be made more powerful. Lexical scopes provided by the humble withResource(action: (resource: Resource) -> ())
API pattern are a much saner way to do resource management that matches the language's emphasis on local reasoning, the whole reason we introduced the new concurrency model in the first place.