Stop obsessing about charging for plugin code. Give plugin code away as GPL, this will be your marketing. (People can see that plugin code is clean, is not harmful to run, that plugin is safe to use.)

Charge for [optional, but essential] access to your servers (API). End of story.

And yes, if plugin is GPL, and somebody provides a patch (bugfix or feature), that’s a net benefit for you.