Heat the oven to 375 degrees F and arrange a rack in the middle.
Bring a large pot of heavily salted water to a boil, over medium-high heat, and cook pasta according to package directions. When pasta is done, drain, and run under cold water to cease the cooking.
For the sauce: Heat the oil and butter in a large frying pan over medium-high heat. When the
butter foams, add the onion and garlic and season with salt and freshly ground black pepper, to taste. Cook, stirring occasionally, until the onions are soft and golden, about 5 minutes. Add the meat and break it up with a spoon. Cook, stirring frequently, until browned, about 5 minutes. Stir in the tomatoes and cinnamon and season, to taste, with salt and pepper. Cook until slightly thickened, about 5 minutes more, then remove from the heat.
Butter a 2 1/2 to 3-quart baking dish. Spread half of the pasta evenly in the bottom of lightly buttered glass baking dish. Sprinkle half of the cheese over the top, add all the meat sauce, the remaining pasta, and the remaining cheese.
In a small bowl, whisk together the milk and the eggs until evenly combined. Slowly pour it over the entire dish; (the liquid should completely cover the noodles). Cover and bake until bubbly, about 40 to 45 minutes. Uncover and bake until bubbling and browned, about 10 to 15 minutes more. Let it sit for 10 minutes before serving.