3) Throwing a incendiary/discombobulator grenade near the player;
John suddenly starts shooting, and kills a innocent. Sven sees this. John IDs the innocent, he was innocent! Sven asks why John killed this innocent. John says: "he shot me". Sven does not believe John, John is 'Healthy' and the innocents gun has a full magazine and full reserve. John did not KOS this innocent for shooting him, John just acted on his own accord. Sven puts 2 and 2 together. Anyways... John then proceeds to throw an incendiary into a group of players, it explodes and does alot of damage. Sven calls a KOS on John.
Kos based on location: John [not neccessarily a Traitor] shoots at various objects and people for unknown reasons.
then someone says: "KOS traitor in lighthouse!" or "KOS John for leaving the tester after i heard someone died in there" or "KOS whoever just got out of nether"]
I think your application could do with a bit of work as in your example of a valid KOS the context is just not needed as when he throws the nade is a valid KOS on its own.
Also in your false KOS example John T baits which is a valid reason and, although I know that it isn't valid when they call the kos on the location, it sounds like you are insinuating that it isn't which is concerning.
I am not saying that you don't already know this just that the application could use a bit of work.