@jbrewer
The code you are using is first hiding the bullets from everything:
visibility: hidden;
This has the effect of displaying what you actually typed, in this case the dash.
Then you’re adding it back to the ul element manually with the ul:after bit.
The reason you don’t see it on subsequent layers is because the ‘children’ list items are actually li elements. They’re all actually li elements, to be technical.
You can try changing the second bit to something like span.cm-formatting-list-ul:after, span.cm-formatting-list-ul li but I think that will only take you another level.
I recommend removing this completely, as the default bullets are the same character you are adding back in, anyways. You can still style them if you want different colors, padding, and margins without all of this. e.g.: li::marker {color:red;} as a dead simple example.

Hope that helps. Good luck!
edit: noticed my relation lines were off. fixed!