I agree that you should go with the characters your son cares most about. The restaurant experience depends so much on factors beyond your control (how crowded is the restaurant? what is the behavior of other guests in the restaurant?).
We loved Ohana breakfast because we could sit and the food was served to us. It was more relaxing than a buffet with kids because we didn't have to worry about missing characters when we were up getting our food. The juice they serve there is divine. However, there is not a lot of variety in food, and our family loves variety. Also, we aren't huge fans of Lilo and Stitch (though they are cute and worth seeing). Mickey and Pluto are also there, I think.
Cape May breakfast was our best non-park character meal. The food was varied, fresh, and delicious, and the characters were awesome. I also recommend a late breakfast. The later you go, the more likely you will have more time with the characters since there are fewer guests. At Cape May, we met all of the characters twice because by the time we were halfway through our meal, half the restaurant was empty (we had the latest reservation possible).