1. Make the broth: In a large saucepan, combine the oil, onion, and garlic and sweat over medium heat until translucent. Add the chipotle and habanero chiles and saute for 2 minutes more. Add the chicken stock, bring to a simmer, add the epazote, and simmer for 30 minutes; season to taste with salt and pepper; strain and reserve.
2. Make the eggs: Saute the chorizo in a small skillet over medium-high heat until browned and separated into small pieces. Remove with a slotted spoon and set aside. Add enough vegetable oil to the skillet to make about 2 teaspoons and heat until hot. Stir in the onions and garlic and saute until soft; add the serrano chiles and chorizo.
3. Pour the broth into the saucepan and bring to a simmer; drop in the eggs and poach until just set. Add the bread and epazote and simmer for 1 minute more.
4. In each of 4 soup bowls, serve 2 eggs along with a large ladle of the broth. Garnish with chopped hard cooked egg and serve.