IMHO, there are two explanations for this situation.
Firstly, it could be, as you hypothesize, be a contrived storyline, created perfectly to accomplish Rowling's plot point. This is a very real possibility. As writers, we know the temptation to "phone in" plot points, just to get them all in.
Secondly, it could be a simple case of a young boy seeing and hearing what he wanted to. Harry was abused for his whole life at the hands of the Dursleys. When he met Hagrid, he was the first person Harry had met that didn't think of him as a nuisance. As Harry went through Diagon Alley, and the Hogwarts Express, and of course, Hogwarts itself, everyone seemed to love and admire him, that is, until he arrived in potions class. Snape was extremely hard on Harry, even spiteful towards him. I think in Harry's view, Snape was like the Dursleys. If he was abusing Harry from day one, literally, certainly Snape was a villain like his family. Preconceived notions can go along way towards coloring your perception of events. In fact, one of the main themes of the book is just that. Assuming that Quirrel was harmless, or Snape was evil, or Hermione was a stuck up snot, or even that what you see is what is real (the mirror of Erised) runs through the whole story. I think that when viewed in the light of the story, the characters, and the plot, these "contrivances" are simply natural plot points.
Now to answer your question: "What changes might be made to the story to let Harry's misconception feel better-justified and less contrived?" If I were to rewrite the book based on critical analysis, I would develop Snape's character more. Snape needs to be mysterious and aloof, it's part of his nature. However, revealing some of Snape's positive traits earlier on would add further doubt to his "evil nature" that Harry percieved. Possibly having him directly stand up for Harry or one of his friends against Filch, or having him publicly reprimand Malfoy for his obnoxious attitude. Giving Snape more depth earlier in the story would do wonders to make the plot seem deeper and less contrived.
Most difficulties with far fetched plots can be fixed by developing your characters more fully. When you develop your characters, you begin to feel like they do. You understand their motivations more fully, and their reactions and decisions become natural. It's my experience that natural characters don't make contrived decisions. Let your real characters smooth out your less than realistic plots.