Most of this was stolen from prior work:
6c4c2aa9ae
The one thing that took me an unreasonably long time to figure out was
that SVGs without width/height don't work (correctly? at all?) in
OpenLayers. Possibly due to this issue?:
https://github.com/openlayers/openlayers/issues/14196
Anyway, it was fixed by adding a width and height attribute to the pin
SVG.