I have used org-mode/babel as a notebook replacement, and obviously the flexibility and the editing capabilities are vastly superior to Jupyter notebook, but I fund it sluggish. I assume that, at least in my setup (using babel-python), the kernel is invoked synchronously. I also didn't try to get any form of completion working, but it should be possible and it would be nice to have.
What is your setup?