Good questions James Dumay.
Currently, even for steps outside of a stage (at least at the start of a run), you see them, until a step within a stage starts, at which point the other steps go away and you only see the steps within a stage.
I think hiding a step should be an "advanced" feature which comes with some warnings, one of them being: only hide steps which you know won't fail, or else the "simple" view in the blue job overview will show the job as failed, but not why it failed (you can always use the "escape" button to go to the classic view and see the entire log output).
That would be the most simplistic MVP version as far as I'm concerned.
Obviously, showing the failed step when it fails, even if it was hidden at first, would be the preferred solution, as it will not concern the devs 99.9% of the time when that step succeeds, but if things do go wrong, it can be shown, and they can ask anyone who is knowledgable about the shared-pipeline steps what is going on.
As far as "what to show while executing" is concerned, I think the same applies as before: I think it makes sense to collapse the step before, but not show/expand the next step yet, until any steps in-between that are hidden are completed.
This is obviously a trade-off, as hiding anything can mask problems/hangs/etc, but that's I believe the whole point of this feature: as a company, you can have steps that you mark as "irrelevant to the devs" and also "99.9% safe", after which you can hide that step, and improve readability/debugging in most use-cases, while still having a backup (the default Jenkins logs) in case things do go wrong.
Does that answer your questions?