Some DryOS internals changed since 6D - in particular, the task hooks. I took a closer look at 6D, and it turns out, the change was not that big, but it wasn't obvious where to look for.
With this change, we no longer have two pieces of code for old and new cameras, so the code becomes more portable (and with fewer camera-specific exceptions).
For the 6D, I've also changed the memory allocation method to classic AllocateMemory (similar to 550D and 1100D). I've re-checked the old boot constants, and noticed we were taking away from Canon memory heap 0xD3C000 - 0xC1C100 = 1151.75K of RAM, even if, for ML, we reserved 640K. With the new method, we took 640K away from Canon memory, from which 624K are available for autoexec.bin, and there should be an extra 512K for regular use.
For 6D, I would like to see a screenshot of the Free Memory dialog, before and after this change, to make sure the memory was reserved properly for ML.
The CPU usage feature should also be working. I'm not sure what was its status - I guess it was in the menu, but not working, correct?
@nikfreak: can you try this method on 70D and 100D?
update: confirmed on 6D, 100D, 70D, 1300D, EOSM2, 80D (likely all DIGIC 6), possibly also on DIGIC 7 (untested, but the task hooks are called in the same way).
Ready to merge after QEMU.