A simple and robust way to accomplish a visual near-equivalent is to use sequential em-dashes.
The em-dash can be typed using ⌥{dash}.
E.g.: –––––––––––––––––––––––––––––––––
Dashed lines can be typed using an en-dash, ⇧⌥{dash}.
E.g.: ——————————————————
This does not insert HTML. Imho, that’s advantageous.
Otoh, the line is a fixed width.
Using KM (and staying simple), you can either repeat the number of characters to insert, followed by a {return}, or you can save the line+{return} as either a variable or a named clipboard, and insert it whole.
You can get the same result without resorting to KM. Just set up a text substitution at “Preferences ▹ Keyboard ▹ Text”.