LR_cantExportBecause governs the whole export (i.e. property is shared by all export filters and export service).
If one export filter sets it, but another export filter (or export service) clears it, then the export button is enabled when it shouldn't be.
However, if nobody takes the liberty to clear it, it stays set, even after problem condition has cleared.
Hmm... - any ideas how to handle this seemingly unsolvable problem?
To be clear: Lightroom keeps track of which plugins have cleared LR_cantExportBecause, and so one plugin can't clear for another plugin (i.e. only if all plugins have cleared it, will it be "clear"). The problem comes in if you have more than one filter in a plugin - if one plugin sets it to "I'm all wonked" and then another filter in the same plugin comes along and clears it, it'll be considered "cleared" for that plugin, and so the "I'm all wonked" gets stomped on / lost.
I have solved this by maintaining a status property for each filter in a plugin, and each filter, before clearing it, checks status of all other filters in plugin.