I think your DS is among the average of what 3yo's can be like for eating. For me, I don't think I could send any child to bed who has not had food since midday, so by the looks of it there was some bad timing there with starting to be stricter with not eating dinner.

One thing to try, which is more what we do with our eldest, it to put the plate in the fridge. If they are hungry later, that evening they can eat off their plate. Of course I don't mean go to the extremes of serving up for breakfast or anything like that, just the hour or so after dinner. Sometimes I just found our DD1 would not touch much of dinner, then be hungry 20 minutes later and happy to eat some then.

It is so hard, I know how you feel there. I think keep consistent with what happens with dinner, but just make sure he is having a snack of the afternoon.