Rust 1.85 stabilized async || closures and the AsyncFn family of traits. The closure captures local values, creates a future containing await, and that future may borrow from the captures.
The older || async {} form could not express some of these borrows. The borrow remains tied to the future lifetime, so callers must respect the ownership rules while that future is alive.
When to use
Use it for async callbacks that access captured state across an await.