Preheat the oven to 350°F. Butter a 13"x9" baking dish and set it aside.
In a large skillet, brown the meat and onions, stirring often to break up the meat. Add tomato paste, 1/3 cup water, wine or beef broth, 1 teaspoon salt, pepper and cinnamon. Simmer for 10 minutes until the liquid evaporates.
Meanwhile, bring 2 to 3 quarts of water to a boil in a 5 quart pot or Dutch oven. Add 2 teaspoons of salt and 1 tablespoon of oil. Add the pasta, being sure that the water continues to boil. Cook the pasta uncovered until tender but firm, according to the directions on the package, stirring occasionally to make sure it stays separated. Drain the pasta. Pour the melted butter over the pasta, tossing it all together well. Set the pasta aside.
In a small bowl, stir together the egg and cream to blend together. Set aside 3 tablespoons Parmesan cheese for the topping. Toss the egg mixture and remaining cheese with the cooked pasta.
Place the pasta mixture into the prepared baking dish. Spread the meat sauce over the pasta and pour the creamy sauce over the meat sauce. Sprinkle with the remaining 3 tablespoons of cheese and bake in a preheated oven for 45 minutes or until top of the casserole is golden.
To Make the Cream Sauce:
In a medium saucepan, combine the butter, milk and cornstarch. Stir over low heat until thickened, about 15 minutes. Stir in the salt.
Remove from the heat. Beat the eggs together well and very slowly stir about 1 cup of the hot sauce into the beaten eggs. Do this very gradually to allow the eggs to warm slowly. Too quickly and the eggs will cook. Gradually add the egg mixture to the sauce and stir to blend it together.