Some kids/people just have a very sensitive 'gag reflex' and can't swallow slick chunks of stuff. Does he have teeth? Maybe giving him a little larger chunks/bites of soft foods that he HAS to chew or mash with his tongue before swallowing like boiled potatoes, banana, sweet potatoes, etc. would help, but you need to stay nearby in case of choking on the chunks! Hot dogs, grapes, etc can be real choking hazards. Encourage him to 'chew, chew, chew' (like a train! LOL) all his foods and give him as much stuff as possible that he can feed to himself so as not to further alienate him from the spoon.
The cheerios and crackers probably kind of dissolve in his mouth and he doesn't have to chew them. As more teeth come in he'll do better and better, too.
Oh, and any time anyone (from newborn to over 100) gets slightly choked or strangled, it helps IMMENSELY to just pull their arm straight up beside the head. You can even help yourself this way if you get choked/strangled. Just stick your arm or arms up (we had our kids and now the grandkids to 'praise the Lord' by putting their arms up and they just started doing it whenever they felt choked, and, praise the Lord, it worked!