Agree with all of this, and would add the following:
There will inevitably be many subjective calls as to whether a player is shooting, passing, dumping the puck into the corner, and so on. It's a split second decision as to the player's intent. But once it has been decided that a shot on goal has been attempted, the result will be one of the following:
1. Goal
2. Shot on Goal; Save
3. Pipe
4. Shot Attempt; Wide (Includes Left, Right & Over The Crossbar)
5. Shot Attempt; Blocked.
My understanding is that these are mutually exclusive and exhaustive categories. In other words, every attempt ends up in one -- and only one -- of the above classifications.
One last detail: Pipes can be correctly categorized as wide shots if you don't want to track them separately. But pipes are not shots on goal.