P.S there is a very slim chance of me opening up the camera and probing points as my parents will most likely evaporate me from existence if they found out.
Don't worry - the UART port is not going to provide much info on top of what you already get from logs saved to the SD card. It's actually the opposite - our logs (i.e. those saved to SD) actually provide a bunch of context info, timestamps, program location and so on, besides the actual messages.
I've also found real-time logging via UART problematic while troubleshooting bricked cameras - it's just too slow to print all Canon's messages in real-time. No wonder they are printing only a tiny subset, and even that happens in a background task.
On EOS R, the UART port was the only way to get in. That's why it was very useful there, but - in my opinion - it's not necessary for ML development or reverse engineering on earlier models (including all DIGIC 6/7, and also the DIGIC 8 "PowerShot" hybrids).
That port is, however, very useful to troubleshoot a camera that doesn't boot (read: a defective camera). It could also also help with debugging early startup code, but that part was already done. Besides, for early startup code, I believe debugging is much easier in QEMU (even with the current limitations). Even if you don't get a display, you do have a way to run the program step by step, to trace calls to arbitrary functions and other stuff like that.
If you just want to read the UART messages, connect the ground to the hot shoe (it worked for me on 5D3), and hold a needle onto the test pin (TX on the camera board, RX on the dongle). That should do the trick, without a FPC.
can the WIFI or NFC interface be used to send logs to the host (or any suitable interface for logs) ?
Yes, but currently the only notes on the Wi-Fi interface are
these (for the old 6D). One could certainly attempt to find the stubs and try that proof of concept code.
An easier way (read: without requiring additional reverse engineering) is to use a
Wi-Fi SD card. You don't need a Wi-Fi camera for that.
As I understand it, a lot of the difficulty is in getting ML to stay memory resident through the boot process.
Actually this step wasn't *that* hard, and is already solved for all DIGIC 6/7/8 models

The minimal "Hello World" code runs on top of that.