Jupyter reigns supreme, at least in my opinion, because there is a kernel available for almost every language. Jupytext lets you strip out the input cells into a version control and text-editor friendly document.
Observable's spreadsheet-like cells solve "Answer #3", but you're limited to Javascript.
Iodide keeps the code and results separate, and has a clean single-document look. It has (some?) support for languages that can be run in webassembly.
This looks most similar to Iodide, but doesn't force you to use the included minimal text editor. I'd really like to use something like this. I do have some difficulty with linting Jupytext documents, which these would have as well. I have not figured out how to get my text editor to ignore everything but the code cells.