I don't support your words. If the delay() is used, the watchdog will reset all time. Reset button don't work. I have to power off.
Obviously, these are different bootloaders, and should have a different version, means e.g. stk500boot_v3_mega2560.hex for the working one.
but its size is 103kB versus 21kB for the other.