Heigh, ho! Bardfilm here.
I just read a brief 2001 article by Eric Sterling that argues that Hamlet knew that it was Polonius behind the arras and that he kills him on purpose (rather than killing him by mistake, thinking him to be Claudius).
Here’s his argument in a nutshell:

It’s an interesting idea, but I’m not sure Sterling addresses the counterarguments sufficiently. He asks us to consider the lines “I took thee for thy better” and “For this same lord I do repent” as Hamlet pretending he mistook Polonius for Claudius.
Does Hamlet have enough motive to kill Polonius? If he knows it’s Polonius back there, how can he kill him without a soliloquy examining the pros and cons of such an action?