The extra bullet was from HTML I did not provide, which repeats the same as I provided.
Margin-bottom seems to work but does not interact with page breaks properly, the bullet may end up as the last line on a page, with the space at the top of the next page which is confusing when printed.
I will test your code sample, thank you.