Crush [1] has had async tools for a long time, as has Claude Code.
They work well, except that the agent will often simply call wait() immediately after, and also do it with a longer timeout, causing crashes/hangs to really slow down the process; whereas immediate tool calls have a built-in 30s timeout in most harnesses.
I imagine this one will suffer from similar problems.