What is one to do? Unicode has dozens of arrows for each direction, but each of them has its height compared to the text rendered differently depending on font or platform

They're usually done with SVGs or CSS pseudoelements (a clip-path polygon or borders and rotation) rather than Unicode arrows

Exactly, text content goes in a <span>, icon is an <svg>, flex align items center on the wrapper gets you close, nudge the icon to perfection with transform: translate

And then the line wraps.

Alright I’ll take the bait, flex shrink none on the svg, white space no wrap on the text