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.
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 3/4 cup Parmesan cheese. Bake for 1 hour, until golden brown and bubbly. Set aside for 10 minutes and serve hot.