(btw: the last numbers of each event are a redundancy since "Exit" and "Init" are unique events that already tell the state.)
Nope it isn't.
PLUGIN_TASK_INIT may fail.
But the enabled state should also be available in the JSON, isn't it?
Anyway, we do have some recently extended feature for tasks to get some values other than the taskvalues.
Original inspiration was the getLevel from the Level plugin.
[taskname#getlevel] would then return the set level, even though that isn't a taskvalue name.
We can do the same for [taskname#enabled] and [taskname#disabled]
So in short:
[taskname#taskvaluename] = current value of the task value.
[taskname#taskvaluename.foo] (added for task stats, like .avg, .max, etc.) is a derived value of a taskvalue
[taskname#bar] = some task specific value which isn't present as a taskvalue. (e.g. getlevel for the Level plugin, and the GPS plugin has all parameters made available via such calls)
Does this introduce some ambiguity or does it make sense?