Combine the bread and egg in a large bowl; add 1 tablespoon water and mash with a potato masher or fork to make a paste. Add half each of the onion and garlic, then add the cilantro, chicken, 1 teaspoon salt and 1/4 teaspoon pepper; mix with your hands until just combined. Brush a large baking sheet with 1 tablespoon olive oil. Shape the meat mixture into 12 meatballs and place 2 inches apart on the prepared baking sheet. Refrigerate 15 minutes.
Meanwhile, position a rack in the upper third of the oven and preheat to 475 degrees F. Combine the remaining onion and garlic, the jalapeno, chipotle, tomatoes, thyme and cinnamon in a blender; pulse until smooth. Heat 2 tablespoons olive oil in a Dutch oven over medium-high heat. Pour in the tomato puree, then add the bay leaves and cook until the sauce thickens, about 6 minutes. Stir in 1 1/2 cups water, scraping up the browned bits from the bottom of the pot. Reduce the heat to low and simmer, stirring occasionally, 10 more minutes; season with salt. Bake the meatballs until they just start to brown, about 8 minutes. Transfer to the sauce and gently simmer, spooning the sauce over the meatballs, until cooked through, about 7 minutes. (Add a few tablespoons of water if the sauce gets too thick.) Remove the bay leaves. Cut the meatballs in half and serve in taco shells with assorted toppings. Photograph by Andrew Purcell