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.