Ok, we know OS, but what about hosting? Shared/VPS?
IF you have dedicated VPS and access to root user, the .git directory and all of it's contents need to have owner root and no group/other access recursively.
Ditto for .github directory. Any other .gitxxx file, root only.
Ya see, the fact that, git directory and files are replying with a 404 means the poke has info ... .git is there and access is denied. There is only one official git repo for moodle code (and one alt that could be used in a crunch) ... so If I could remotely poison your servers ability to look up that repo via DNS and point that to a rogue repo ... think you can see that if a hacker really wants to get to your server ... this security check is but tip of an iceburg ... but that's my 2 cents! 
Take a look at those readme.txt files - or even upgrade.txt files. If I have a 3.9.highest maintained by git, many of the readme.txt and upgrade.txt files will disclose I have a 3.9.0 ... but not the 3.9.highest.
Besides that ... all one needs to do really is to download or acquire moodle code via git to a local machine and they can see ALL the code anyway!
Think most of what you listed could have their ownerships/permissions reset and moodle security check would then report 404 - green - but question is what have you just broken?
One I saw ... environment.xml and environment.php. If you lock those down and then go to Server Environment check via the web can you update the component?
Not a security person but do have to admin the backend. Wonder if some of those checks are kinda overly concerned.
What, of course, would be serious ... non-authenticated user being able to execute a script remotely. Wonder if mod-security and SeLinux aren't really enough without making it more difficult for you the admin user?
Shared hosting has an issue with this ... they cannot su to root ... matter of fact all files in moodle code belong to account login name and such a setup in a user jail can't use/change owners ... permissions yes.
One of the things one could do (not seen it mentioned) is to force logins ... NO GUEST access. Realize there would be some folks not happy with that, but ...
Another suggestion since you have Linux ... install logwatch. Set it to 10 reporting ... highest/all. Then check the daily email root user would get about the activity the day before. Focus on the http portion. You'll see what but not IP that did it. For IP that did it, you'll have to search your apache/web service access logs for that entry. See a bunch from one IP? Use operating system firewall to block - that's at the network layer ... never gets to application (WAF/Apache/Moodle/WordPress/Log4J whatever).
Something else observed ... if moodle code is in a directory rather than at root of web server docs, the bot scans miss you moodle. Now if you see stuff in logwatch pointed at that directory, then there is a good reason to investigate!
Anyhoo ...
'SoS', Ken