If you have no choking, etc, it is BEHAVORIAL. But that is easy to fix! :-) Try this positive reinforcement training. Our daughter was in the Baylor INPATIENT Feeding program for one solid month to learn it. It works!!
These are STRUCTERED meals without interference from anyone else. So only one feeder/prompter present at a time. If you must feed around other people, instruct them NEVER to make eye contact or engage with the child unless he is eating and they want to be positive. ALL negative behavoir is to be ingnored by EVERYONE, even feeder. At his age, you should be feeding 4-5 times a day. Here are the basics:
1. Gather up some favorite (or new!) toys into a bin. These will be his feeding toys and he can ONLY play with them when he is eating.
2. Sit him down to eat in a chair he can't move out of, and turn on the TV if he likes a certain show. Tell him "It's time to take your bites" and he can pick a toy to play with while he eats, have him choose one.
3. Play with the toy for at least 30 seconds, then Set a timer for 25 minutes (in front of him).
4. Begin to feed. Offer a bite of the food that you have prepared (90g per meal, NOT cheese, at least most of the time, but you can throw some cheese 'meals" in there to show him how a positive meal would go later on), and say in a NEUTRAL TONE (this is key!) to "take your bite". If he complies, you go over the top with positive encouragement, "Yeah!!! You took your bite!!" And play with him and the toy excitedly. He gets to keep playing as long as he eats.
If not, prompt him once more (twice total) and then warn him, "Take your bite or the TV/your toy goes bye-bye." (AGAIN, very NEUTRAL, this is not a punishment, it is a removal of a reward). If he still refuses, immediately, yet gently take the toy away and/or pause the TV.
5. The TV stays paused/Toy gets held by you, until he takes the bite. EVEN if it is ALL 25 minutes. Every 2-3 seconds, prompt him to take his bite, and remind him, "when you take YOUR bite you may have your toy/watch Barney", etc. (NEUTRAL)
6. DO NOT substitute bites of different food or drink until he takes what you originally offered. And you can use foods he likes in place of toys/tv. Like "take your bite and you may have a bite of cheese". In which case you would alternate bites of that meal's food with cheese in between as the reward. I only suggest this after you have done this toy program successfully for several months.
7. If you get a good response at first and then bad all the sudden half-way through a meal, he may be bored with the toy he/you picked, so keep the bin close by and he can pick more toys as the meal goes on. Unlimited toys as long as he is eating. if he stops, try presenting up to 3 more toys (one at a time) and say, "take your bite and you can play with 'new robot!" or whatever. But no more than 3 different toy attempts during a 'stand-off'.
8. Never give in. The meal is only over when a) he finishes all the food or b) the timer goes off.
9. There are only 2 sentences that you end on, a) "You did it! You took all your bites! great job! You can keep playing with your toys/watching TV." This is for either he ate all of the food before the timer, OR he was cooperating when they timer went off (ends on a good note!) :-) b) "All done. The meal is over, you did not take your bites. You may not play with your toys. You can try again at lunch." (NEUTRAL) And you remove all food and toys, etc. and leave him there for exactly 2 minutes. Then he can get down and no mention of the meal is made ever again.
10. NEVER discuss the food being fed. You may identify it, but give no positive or negative descriptors. This is now about the food! Try to do this with all food actually as it builds a healthier relationship with eating as people age.
11. Between meals, he may have NO FOOD but only water. If his last meal ends in a standoff, you MUST be prepared to send him to bed with no more food. He has to learn to eat when offered, there is no later. It took our daughter 2 weeks to learn this, she was 16 lbs and 2 years old and she did not die. Trust me, he won't either.
If he eats well at the last feeding of the day, then he can have whatever he wants until bed time, drink or food. But only if he asks, do not offer. Likewise anytime you are eating in front of him, if he asks, let him sample, without comment from you either way. Again, ALL negative behavoir from him must be ignored.
We have had beyond great success with this and she now eats anything as long as we stick to protocol. She still has many stand-offs and always will, waiting for us to relent, always testing us. It is not her that needed to be retrained, it was us. Email me directly if you want to talk more, or want more details, Good Luck!