My dd would eat hot or cold custard with banana. I used to make it from scratch with eggs and milk, and reduce the sugar significantly (the banana offset it).
She also ate crustless baked egg custard, and semolina/rice pudding (both of which make me gag!)
You can also mix a beaten egg into porridge to bump up the protein.
I'd keep giving his yoghurt for pudding regardless of if he's eaten his dinner. It's not a reward for eating his main, it's yoghurt.
If you're worried he'll be hungry overnight, give supper. Three meals a day is a relatively modern concept. Eating little and often is standard.
At that age dd would have:
Breakfast - porridge with some sort of fruit.
Lunch - a sandwich, some fruit/veg, yoghurt
Dinner - cooked meal, dessert - a milk pudding of some sort
Supper - banana or, if she'd not eaten a lot of dinner, porridge or toast.
Fruit and veg were available if she was hungry between meals, sometimes she was, sometimes she wasn't.