I found the code you're referring to in template::util::richtext::get_property, but it's only executed if you set "what" to html_value. All of the examples of this I see in lars-blogger and bug-tracker used contents, which is what I was using, and that just returns the raw value.
So I tried using html_value instead, with a message that looked like this:
line1
line2
line4
It looked right on the confirmation page, but the final message ended up like this:
line1
line2
line4
I am guessing this is because the html conversion got run on it twice. Is this correct, that I should rework this so it's only run when going to the confirm page? And why don't I see bug-tracker or lars-blogger doing it this way? I feel like I must be missing something,