For the Tomato Meat Sauce:
- 3 tablespoons good olive oil
- 1 1/2 cups chopped yellow onion (1 large)
- 1 pound lean ground beef
- 1 pound lean ground lamb
- 3/4 cup dry red wine
- 1 tablespoon minced garlic (3 large cloves)
- 1 tablespoon ground cinnamon
- 1 teaspoon dried oregano
- 1 teaspoon fresh thyme leaves
- Pinch of cayenne pepper
- 1 can (28 ounces) crushed tomatoes in puree
- Kosher salt and freshly ground black pepper
For the Bechamel:
- 1 1/2 cups whole milk
- 1 cup heavy cream
- 4 tablespoons (1/2 stick) unsalted butter
- 1/4 cup all-purpose flour
- 1/4 teaspoon freshly grated nutmeg
- Salt and freshly ground black pepper
- 1 1/2 cups freshly grated Parmesan or Kasseri cheese
- 1 1/2 cups diced Mozzarella
- 2 extra-large eggs, beaten
- 7 oz Greek-style yogurt
- 12-16 oz pound small shells
For the sauce, heat the olive oil over medium-high heat in a large pot. Add the onion and saute for 5 minutes. Add the beef and lamb, and saute over medium heat for 8 to 10 minutes, until it's no longer pink, crumbling it with the back of wooden spoon. Drain off any excess liquid, add the wine, and cook for 2 more minutes. Add the garlic, cinnamon, oregano, thyme, and cayenne, and continue cooking over medium heat for 5 minutes. Add the tomatoes, 2 teaspoons salt, and 1 teaspoon pepper and simmer, stirring occasionally, for 40 to 45 minutes. Set aside.
Preheat the oven to 350 degrees F.
For the bechamel, heat the milk and cream together in a small saucepan over medium-low heat until simmering. In a medium saucepan, melt the butter. Add the flour and cook over medium heat, whisking constantly for 2 minutes. Pour the warm milk and cream mixture into the butter and flour mixture, whisking constantly. Continue cooking, stirring occasionally, over medium heat for 5 to 7 minutes, until smooth and thick. Add the nutmeg, 1 teaspoon salt, and 1 teaspoon of pepper. Stir in 3/4 cup of Parmesan cheese, 3/4 cup of Mozzarella, 1/2 cup of the tomato and meat sauce, and allow to cool for 10 minutes. Stir in the eggs and yogurt and set aside.
Meanwhile, cook the pasta in a large pot of boiling water until al dente. Don't over-cook because the pasta will later be baked. Drain and set aside.
Add the pasta to the meat and tomato sauce, and pour the mixture into a baking dish. Spread the bechamel evenly to cover the pasta and sprinkle with the remaining Parmesan and Mozzarells cheese. Bake for 1 hour, until golden brown and bubbly. Set aside for 10 minutes and serve hot.