Bring a large pot to a medium heat. Add in the olive oil, letting it come to temperature, and add the onion, shallot, cumin, oregano, garlic, and half of the cilantro. Cook this for about 5 minutes, stirring along the way.
Next, add in the crushed tomatoes, and half of the stock. Stir, then add this mixture to a blender.
Be careful before you blend, and make sure you place a towel over the lid of the blender, applying a bit of pressure. When you add hot mixtures to a blender, pressure builds up and if you do not apply pressure and protect your hand from the heat, well, the top could pop and you would have a tomato mixture all over your kitchen.
Blend until smooth. Heat up the pot medium heat, and pour the blended mixture into the pot. Add the remaining stock, and give a good stir. Toss in the sliced chicken, and bring to a boil. Once boiling, cover, and reduce the heat to a simmer, cooking another 25 minutes.
During this time, heat a skillet to medium heat and add in the canola oil. Once the oil is hot, but not smoking, add in a handful of the sliced corn tortilla, and cook until crisp, about 3 minutes or so. Remove with a slotted spoon and place on a paper lined plate to allow any access oil to drain. Season with salt. Repeat with the remaining chips.
Once the soup is done and the chicken cooked through, get ready for some fun. With a big ladle, add the soup to your bowl. Top with some shredded cheese, tortilla strips, avocado, fresh cilantro, and some of the serrano chiles. Squeeze a bit of lime juice over the top, and dig in.
Right off the bat you get that hit of awesome broth, and then you get into that melted cheese that when paired with the chicken, and avocado, well, let's just say you have yourself a winner of a soup, and I could not have been more excited when my wife had asked for it this past weekend! I hope you enjoy.