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, 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.
Lightly coat a baking dish with olive oil. Add a thin layer of meat sauce to the bottom of the dish. Add the pasta, then pour the remainder of the meat sauce over the top. Spread the bechamel evenly to cover the pasta/meat and sprinkle with the remaining 3/4 cup Parmesan cheese. Bake for 1 hour, until golden brown and bubbly. Set aside for 10 minutes and serve hot.