You can still use the elm-markdown with sanitize = False, and it will just render the HTML that you give it, assuming it’s just markdown html (no script tags for example). Since it’s your own HTML, turning sanitization off is much less risky.
Another possibility is to use an iframe with the srcdoc attribute.
I compared pablohirafuji/elm-markdown with hecrj/html-parser purely for performance, I might add. The latter felt like native performance when tapping between my tabs of content whereas the HTML parser, paused shortly, before updating the content.
The key to configuring elm-markdown was to set defaultOptions to Markdown.Config.ParseUnsafe which enabled anchor tags to be rendered correctly.