A few years back I wrote something similar for ClojureScript:
https://github.com/binaryage/cljs-zones
The drawback was the need to manually wrap all participating async functions into a special macro (zones/bound-fn). With async_hooks this could be automated I believe.