Heat olive oil in a large skillet or Dutch oven over medium heat. Add onion, carrot, and celery; saute until softened, about 5 to 7 minutes. Stir in garlic, then add ground beef and pork; cook until browned. Mix in tomato paste, crushed tomatoes, broth or wine, oregano, and basil. Simmer uncovered for 45 to 60 minutes, stirring occasionally, until thickened.
In a saucepan, melt butter over medium heat. Whisk in flour and cook for 1 to 2 minutes to form a roux. Gradually whisk in warm milk until smooth. Simmer until thickened, about 10 minutes. Season with nutmeg, salt, and pepper.
If using dried pasta, boil lasagna noodles according to package instructions until al dente. Drain and lay flat on parchment to prevent sticking. If using fresh pasta, no pre-cooking may be necessary.
Preheat oven to 375 degrees F (190 degrees C). Spread a thin layer of meat sauce on the bottom of a 9x13 inch baking dish. Add a layer of noodles, followed by meat sauce, bechamel or ricotta, and mozzarella. Repeat layers until ingredients are used up, finishing with noodles, sauce, bechamel, and cheese on top. Sprinkle generously with Parmesan.
Cover with foil and bake for 30 minutes. Remove foil and bake another 15 to 20 minutes until golden and bubbling. Let rest for 10 to 15 minutes before slicing.