You've already covered it, let him contribute the level he wants to, even if that's less than other players.
Different players want different things out of a game. Don't drive your player away by forcing him to RP if he isn't up for it in every scene. I myself love to roleplay, but this is not a constant from session to session and my energy and emotional investment can vary largely from scene to scene. I may take the limelight for a session while I try to lead the party with a plan I've come up with as a player, but I also frequently take a back seat if there's nothing pressing to my character and I am okay with the general progression of events and party decisions being made. Ultimately your player having a good time is something only they can gauge, if he/she says they are having fun and are okay with things then respect their self-knowledge and let things be.
Say No - say it early, and say it often with this group. Talk to them about it.
Even though I highly discourage railroading sometimes "No" is the appropriate answer. A lot of DMs are afraid to say no because they are worried the players will feel raidroaded. This can create a lot of problems like the ones you listed above.
If you are starting a new campaign take a look at the characters the players have created. If you want don't allow neutral or evil alignments. Don't allow characters who are murder hobos. I'm not saying require all lawful good paladins, but don't allow the types of characters that won't move the campaign forward. Start saying no at Session 0. Set that expectation.
Before every campaign/every new character creation my players send me their back stories. I have said no to certain things many times (usually to Chaotic Evil alignments or murder hobos), and no one has pushed back hard against it. On the "say it often" players can attempt to rob a store/overthrow a government. But when a player consistently tries to harm every NPC and the in game consequences don't change anything a no is necessary. Often.
I have a feeling in game punishments won't work (i.e. when they set fire to the Queen the lvl 20 fighters in the room attack the party and kill them). In this case, you're going to need to meta and say "No." The players probably won't like it, but the line has to be drawn somewhere.
Don't be afraid to bring it up. Let them know they're making it hard and unenjoyable for you. If they are people who are worth playing with they will change their playstyle for you. If they don't, then let them know the group just isn't for you. Most players are understanding. I've never had an issue that I've addressed that has been ignored (but normally I am host and DM, so I have a lot of "clout"). Still, if your players are good humans they'll be understanding.
There was one guy who went to find another group when I wouldn't let him attack a child for "RP" reasons. Before every campaign/every new character creation my players send me their back stories. I have said no to certain things many times (usually to Chaotic Evil alignments or murder hobos), and no one has pushed back hard against it. On the "say it often" players can attempt to rob a store/overthrow a government. But when a player consistently tries to harm every NPC and the in game consequences don't change anything a no in necessary. Often
As far as "Tom" goes... some people forget D&D is just a game. As you said, with him being the host things are more difficult. But if it creates such a problem then look into another place to play. I know finding someone to host can be difficult, but it might be worth the effort in this case.
I see several options here:
Get over it
Talk about it
Most likely you will have to implement several of these methods to come up with a true solution, but here are my recommendations for each:
Get Over It As a player (but more a GM) you're putting yourself out there a bit. Yes it'd be nice if your players respected your NPCs a bit more, but if you are enjoying the game why is it a big deal? You may need to examine your expectations here. Maybe your group is looking for a lighter play style than you are.
Embrace It Pun it up, make your NPCs fit their puns. Make your ridiculous character all the more ridiculous. This may not work if you're looking at a more serious play style, but even those have room for humor. Or maybe your Minotaur has a complex...Maybe it's no metagaming, maybe it's really an insult. Maybe your character really is a cow?
Talk about it This is the hardest of my recommendations, but is probably the most useful. Most likely your group doesn't see an issue. You've got to actually dialogue about how your expectations are different from what plays out at the table and talk about how you guys can come to a solution. This is cooperative gaming, it should also be about cooperating to have a good time so everyone can have fun. This is especially important if you feel offended or if the jokes have crossed the line. There is no reason to sit and stew when if you asked them to stop they would likely stop.
Change it Come up with a different character concept, do a better job roleplaying/naming/characterizing your NPCs. This isn't to say that you're not doing fine right now, just that if it's bothering you, use it as motivation to get better.
It sounds to me like your expectations and your groups' expectations are kind of on a different page. Really most of this boils down to aligning those and continuing on. If you're group is looking for beer and peanuts to relax after work and you're looking for serious theater, you might have to all adjust your expectations and find different outlets for the sentiments that are no longer welcome at the table.
Personally I think it's important to have fun at the gaming table and if something is impinging on your fun you should let your group know. I'm pretty sure they'd be happy to help you fix it, even if it means they have to pass on the cow jokes.