Nested inline nodes

The current story for non-leaf inline nodes is that they are supported, but you have to define a custom node view for them, and you are responsible for creating a piece of DOM that will act appropriately when edited. This approach sounds like the most appropriate one for your use case – define your tags as nodes in your schema, and write a node view that renders them, either embedding another ProseMirror instance for the content, or allowing their child nodes to be rendered by the outer ProseMirror, you’ll have to see what works best.