So this was what we actually ended up doing, no preprocess or overrides required. Thanks to Peter Bull at Acquia for the help on this:
We handled this with some additional Views fields to rewrite the HTML.
Added an additional field for the term description, identical to how you I currently had it, except select "Exclude from display" and remove the "more link".
Changed the order of fields so the new term description field is loaded before the existing one.
Edited the original term description field. Check "Rewrite the output of this field" and put the token for the new field in the textarea, and then append the HTML for your link. So you are rewriting the HTML output as:
[token-for-new-term-description-field] <a href="/mypagewiththeview#training-block-[counter]" class="foo">more</a>
Then I removed the more link as it was included in the rewrite above.
This workaround will preserve the trimmed output of the description field, and allow you to render the link with the appropriate counter ID in the anchor, without running that path through l() and check_plain().
Also needed to prepend the link with a / so it's root-relative. Since it's not being passed though l() it won't do that automatically and if this view page has a path that's not relative to the docroot you could get broken links.