We don't always have to screw one group of people over to remedy injustice to another group. Society can tolerate some inefficiency in order to protect everyone's right to separate self expression.
Certainly it should be illegal for a restaurant to refuse service to a same sex couple who walk in holding hands. But here was are forcing someone to actively participate in a ceremony that goes against their sincere beliefs. I think we can carve out a small exception for specific circumstances (ceremony that is widely considered to be religious in nature, family business, non-urgent need, wide availability of alternatives).