I've played almost every game on your list, plus tons more. I've been playing FPS games since super nintendo.
CoD, to me, is subpar at best. MW and MW2 had cool campaigns, but the multiplayer only holds any remote interest because of the skinner boxing, and after I got to level 50 in CoD 4 and realized I wasn't even having fun with the game they haven't been able to lull me into the the same false sense of accomplishment.
Halo, on the other hand I love. It's just an armslength behind Team Fortress 2 as my favorite competitive multiplayer FPS of all time. The campaigns after the first 2 games are kind of shit, I'm not going to debate that, but I love the multiplayer. Your character is very mobile and relatively fun to control by FPS standards, and almost every single weapon and vehicle has a completely different function. Plus unlike most modern shooters, your character can sponge a decent amount of bullets, so all the different elements and factors that counterbalance each other really come into play. For example, the plasma pistol is the weakest gun in the game, but it's one of the few weapons that will give you a fighting chance against a tank.
Also it's got forge and custom games, which can result in shit tons of fun with user created content. I can search bungie.net for 10 minutes for high rated levels and gametypes and keep my friends and myself entertained for hours. Though I will say, I only really enjoy it with friends or in big team games. The stuff that's like "play this small level using only the mid-long range percision weapon" isn't a very good use of the game's resources, frankly. So if you've just been playing "slayer pro" on matchmaking, you're not getting the same multiplayer experience that I like the game for.