This seems to be a popular idea recently. After reading this paper[1] I ended up building this into my actor based language[2]. It makes a lot of sense in actor based concurrency, I'd be curious to know what rust devs think of this since it's a bit different from how they often do concurrency.
[1] https://simonjf.com/writing/eventactors.pdf
[2] https://march-lang.org/docs/choreography/