I gave this a try and it works for me. One thing I noticed is that if you run a call asynchronously, the final result ends up under the source block instead of the call.  In the example below both RESULTS were written after I ran the call.

    #+name: test-call
    #+begin_src python :results output
      import time
      time.sleep(5)
      print("done")
    #+end_src

    #+RESULTS: test-call
    : done

    #+call: test-call() :session :async

    #+RESULTS:
    : 70e844920752b3411170716dc450c50f


On Sun, Apr 25, 2021 at 3:06 AM Jack Kamm <jackkamm@gmail.com> wrote:
Hi Timothy,

> This is moving at a glacial pace, but I'd love to see this merged ---
> there's clearly a lot of interest in this from the community if not
> within this mailing list (ob-async which is more limited has 250 stars
> on GitHub).

Yes, this has taken far too long -- sorry about that.

There have been a few things going on in my life recently, among them a job change. I am in the process of trying to get my FSF copyright forms approved at my new job. I think this will eventually happen, but the process is moving slowly.

My last update on this thread was shortly before changing jobs, and I decided not to merge until I was sure I'd be able to stick around to maintain it.

If someone is willing to apply the final tweaks and help with maintenance of this functionality, please go ahead and merge this in. Otherwise, I'll merge this as soon as I've got my paperwork approved and am back in action.

Jack