>>11
https://wiki.greasespot.net/Metadata_Block#.40run-at
"""@run-at
Compatibility: Limited support in Greasemonkey 4.0.
[...]
document-end
The default if no value is provided. The script will run after the main page is loaded, but before other resources (images, style sheets, etc.) have loaded. The only guaranteed working value in Greasemonkey 4.x."""
So the documentation disclaims any hard guarantees about document-start. You could check whether Violentmonkey or Tampermonkey might work better for your use case. Also:
for (site of sites) {
...
break;
}