I canot speak to most of those questions. Hopefully someone with more insight will also respond.
I do know using MyBinder to open updated JupyterLab cells it now respects the hidden nature. I’m not sure for nbviewer.
As for a workaround if you need something for now, Peter Parente has some javascript posted to enable hiding input cells. I wonder if it adaptable to your needs?
Related to the workaround effort: [Solved] Javascript How to hide code from cells in ipython notebook visualized with nbviewer? - Code Redirect