I learned in design school in Germany that of course, the percent symbol is separated from the number with a space. Because you could also write 100 Prozent. You also don’t write 100cm without a space, right?
And the careful typographer will make a Jan Tschichold gesture and decrease the space slightly …
But obviously, things are different in written English.