Indeed, there's too much noise in the logs.
I've tried to get similar logs from 60D, with and without internal flash.
Test code:
static void run_test()
{
msleep(2000);
debug_intercept();
lens_take_picture(64, 0);
msleep(2000);
debug_intercept();
}
Logs:
DM-0000.LOG (no flash, first picture after powering on the camera)
DM-0001.LOG (no flash)
DM-0002.LOG (flash enabled)
DM-0003.LOG (flash enabled)
Diffs (MPU messages only; input files reordered to minimize differences):
diff01.html (no flash vs no flash)
diff12.html (no flash vs flash)
diff13.html (no flash vs flash)
diff23.html (flash vs flash)
None of those looks like the main CPU is telling the MPU to fire the flash...
I guess our only option is to understand the MPU code, which is a LOT more difficult. For most DIGIC 4 cameras, the microcontroller (TMP19A43CDXBG) is documented fairly well, and emulating it in QEMU is probably doable, but requires a lot of effort (I'm not exactly fluent in MIPS assembly code). Hopefully it won't be a pipe dream in the next few years.
For D5, the microcontroller appears to be some sort Fujitsu FR, and I know very little about it. But the communication is most likely compatible (the message format looks quite similar), so figuring out on D4 will probably be enough for D5.