Agreed - generally it's way simpler than it would initially appear. Do just think about it as if logmon runs your command and directs the output to a temp file. Then your watchers run on that whole temp file. Then everything is cleaned up and you await the start of the next cycle.
Depending on the control you have over the script it can be trivial to set up: For instance, just have the script generate the outputs: CLEAR, RESULT1, RESULT2, etc then your watchers match on /CLEAR/, /RESULT1/, etc.
Or have your script simply generate a result code (exit 0 or exit 1) and use the result code monitoring option instead of matching text.
Do note that if you capture QoS using a variable (this is true for all logmon variables) the csid that is generated is a hash of the watcher name so if you want to capture the value and do something like clear < 20, warn < 50, and error < 100 then you need four watchers - one each for the alarm values where you don't QoS the variable, and a fourth that always matches to get the QoS value but has no alarm associated with it.
-Garin