There's another way that might work with calibre. Define a selector that hides the text:
Code:
.hidethis {
visibility: hidden
}
Construct your heading as you'd like it to appear in the ToC, then hide the part you don't want to see in the flow of text.
Thus:
Code:
<h3>III<span class="hidethis"> - A New Beginning</span></h3>
<h4>A New Beginning</h4>
Then use the h3 tag as the source of your ToC name.
This would work if calibre simply strips out the css from text that's used for ToC names. I think it's worth a try.