Kinda read through this a little quick, saw you tried recovery mode. I had to recover one of my old AC5300's and everytime it started to load the firmware it would fail at some what I first thought was a random %. Router connected to PC, good cable, 1Gbe should've worked fine. Tried other firmware versions, and noticed the % of where it failed to upload changed with the version. It wasn't the version of firmware but the size of the file. I finally found a firmware (had to go back to a very old Merlin version) to find one just small enough, it was 32.7MB. After getting to 98% a dozen times seeing it get to 100%, finish and seeing the router come back to life felt great.
Subsequent testing, I also could've gone a different route say DD-WRT that for the 5300 is just under 27MB, which also worked. Then back on to Merlin, of course...
Drove me nuts for two days trying to figure why recovery mode was failing at the same % for the few FW versions I tried until I stumbled on that 33MB FW size. Not sure if its a timing thing or a file size on the router or the recovery mode program, but got past it by finding the using an older FW, once up I then upgraded to current version. That's my case, recovery mode, PC, 1Gbe, AC5300, that may or may not yeild the same results in your case...