The only reason I say "it isn't smart" is because, as far as I'm aware, it creates as many new problems as it solves. Until proven otherwise, I'll stand by that!
I don't actually understand 2, so wouldn't know what I'd be trying to solve.
Having had various discussions about this, there doesn't seem to be a neat way to log a key and block it without it being a trigger in its own right.
I'm certainly not a pro, and still consider myself a beginner, and although I've put a fair amount of thought into this, I'm 1000% open to new and better ways of doing it.