Jack, I feel sorry for you, but surely there was other food on-board, even a bread roll and an apple would have been better than nothing. I was on a 15 hour QF flight from Singapore to London and was told by the attendant that they had run out of meals. I was the only one that missed out. The flight manager came to my seat and apologised, then returned about 30 minutes later with a meal from business or first class and an $80 duty free voucher.
As for your compensation, a $20 food voucher is pretty poor, maybe another free upgrade would be better.