You make a good point. I'm not sure I'd be in a position to enforce anything myself. I would be relying on larger companies to be too risk adverse to violate the license, hoping that they would pay for a commercial option instead.
If someone wants the source. Sell them a source code license developer by your attorney who can be paid with the proceeds of commercial license sales.
And charge for source code access so you make money off it.