Heat a large cast-iron skillet or Dutch oven over medium-high heat. Add the chiles and cook, pressing them down with a spatula, 10 seconds per side; transfer to a plate. Add the tomatoes, onion and garlic to the skillet and cook, stirring once or twice, until the vegetables are charred in spots, about 10 minutes.
Peel the garlic and transfer to a blender along with the tomatoes and onion (reserve the skillet). Tear the chiles into pieces and add to the blender along with 1/2 cup water and 1 teaspoon salt; pulse until smooth. Strain the mixture through a fine-mesh sieve into the skillet, pressing it through with the back of a spoon.
Add the beef to the skillet and turn to coat in the chile sauce using tongs. Cook over medium-high heat, turning occasionally, until a crust starts to form on the meat, about 10 minutes. Sprinkle in the cumin, cinnamon and cayenne pepper and cook 1 more minute. Meanwhile, puree 2 1/2 cups water, the cilantro and thyme in the blender; add to the skillet along with the bay leaves.
Reduce the heat to low. Cover and gently simmer until the meat is very tender, about 2 hours, adding up to 1 1/2 cups water if the sauce gets too thick. Remove the bay leaves and season with salt and black pepper. Serve in tortillas with assorted toppings.