To make the jump that Garrett "probably just heard both shots and assumed.." actually IS doing more mental gymnastics with the scene because it requires the viewer to come to a conclusion that they don't have the visual or audio information to come to. There's nothing there to support it in forshadow or straight forward information. Meanwhile there's plenty of forshadowing to support that Garrett is the one who has taken that shot throughout multiple episodes and very heavily throughout this single episode.
If we really occam's razor this shit, it's Ward behind the gunsight. Because that's what the flashback was to. Ward was gonna shoot the dog, he didn't, so we think he'll save FitzSimmons. But then it turns out he's not saving them, and we cut back to the dog, in the gun's sights. It's a 1:1 parallel. Now if they aren't SHOWING who's behind that sight, the easiest assumption is that it's "obvious" who's behind it. Namely, it's the guy who's having a flashback, and who just pointed a gun at the dog, and who just decided to jettison FitzSimmons. If they wanted to say it was Garrett shooting the dog, they would have
shown Garrett behind the gun. Instead, they showed nobody. The only thing we can reasonably infer from the information presented solely in that scene is that it's Ward.
The argument that since Garrett uses the same line on him he's holding something over his head is flawed. He wants FitzSimmons dead, he's not gonna use the same line that
didn't result in Ward killing the dog to try and get him to kill his friends. To the contrary, he's using it to
reinforce the fact that hey, Ward, kill these people just like you killed that dog. Remember, you are not weak.