I accidentally stumbled upon a solution, after a year of trying to figure this out...
We also stumbled on that some time ago for a dynamic navigation menu just like you did.
The cause is that the openInNewWindow JS function is returning an object
> Returns the window object of the named window or null if for some reason the window isn't opened.
and IE being IE is trying to display that object...
As you said appending void prevents the returning object.
What we ended up doing is this :
The two works just as fine. Just be sure to comment that the void has a use because another dev could see this as useless code and could remove it.