luceos Thanks @luceos. I have come to learn that error was just a symptom and not the root cause of the problem, i eventually got some logs that hinted at the root cause.
Most of my problems have been permission related ranging from unable to log(), unable to read image sources errors, empty image files etc. So turns out your advice of using crontab -u www-data
is really important to follow and also file permission being set right!
But after many days of hard work my fof/upload queue is set up and working great. I had no other options but to make a few minor changes to the extension UploadHandler.php to give my event listener more control to override the upload process. I also had to introduce a discussion id parameter to be included on each upload to link my uploads to discussion's photos column since it would have no idea what it belongs to. Maybe i'll fork fof/upload to manage the changes since yes i know they will be overritten.
Bonus problem was solved after HOURS of troubleshooting and confusion after finally realising that fof upload deletes the temp file if an error is returned. I was trying to access it after throwing an exception (aka my "i'll take over from here" command). Good times...