Using a ::before there does indeed have unexpected results with the callout in an embed. FWIW, I haven’t seen ::before placed on the root .callout element before.
This seems to produce similar results and looks fine in an embed. You could give it a try.
I noticed the callout-in-an-embed internal margin issue. You could use the CSS here to fix it if it bothers you:
Also, if you have two callouts next to each other and they are smooshed together in a Live Preview embed (right tab from my screenshot), this will sort that out: