That sounds like it would work, except that the translation would have to be done every time a post is displayed, which seems inefficient.
A couple of other choices:
Use the method employed by UBB.classic, where the opening and closing tags are translated with a single regex.
Use <!--color--></font> in place of </font color>. I haven't thought this through, so I'm not sure if it would work.