I'd pick the one that better enables third-party
implementations from
the spec. If there's nasty stuff to do as well, at least it can be
specified nasty stuff, with public-domain pseudocode to work from and
so forth.
I'd say they're equally good from that perspective. Steve's idea is
probably slightly easier to specify simply. My idea would allow 3rd
parties to simply not allow invalid syntax and then not worry about
tidying it (basically, we have two specs, a strict one and a tolerant
one). If their users are slightly more tech-savvy than ours, requiring
they use well-formed wikisyntax would be acceptable, if not, then
they'll have to do something just as messy as us.