Heat olive oil in a large skillet or Dutch oven over medium heat. Add diced onion and cook 8-10 minutes until softened and translucent.
Add ground beef and Italian sausage, breaking into fine crumbles with a wooden spoon. Cook 8-10 minutes over medium-high heat until browned with no pink remaining.
Add minced garlic during the last minute of cooking, stirring constantly to prevent burning. Drain excess fat, leaving about 1 tablespoon for flavor.
Stir in marinara sauce, tomato paste, Italian seasoning, salt, pepper, and red pepper flakes if using. Bring to a simmer, reduce heat to low, and cook uncovered for 15-20 minutes until slightly thickened.
Bring a large pot of salted water to a boil. Add lasagna noodles and cook for 8-10 minutes until al dente (2 minutes less than package directions).
Drain noodles and rinse immediately with cold water. Lay flat in a single layer on clean kitchen towels or parchment paper. Pat dry with paper towels.
In a medium bowl, combine ricotta cheese, ¾ cup of the Parmesan cheese, egg, fresh parsley, salt, pepper, and nutmeg if using. Stir until well combined and creamy.
Preheat oven to 375°F (190°C). Lightly grease a 13x9-inch deep baking dish. Spread 1 cup of meat sauce evenly across the bottom.
Lay 4 lasagna noodles lengthwise over the sauce, slightly overlapping if needed. Spread one-third of the ricotta mixture over the noodles.
Sprinkle 1 cup of shredded mozzarella over the ricotta. Ladle 1½ cups of meat sauce over the cheese, spreading gently to the edges.
Repeat layering two more times: noodles, ricotta mixture, mozzarella, meat sauce. For the final layer, place remaining noodles on top, spread with remaining meat sauce, and sprinkle with remaining 1 cup mozzarella and ¼ cup Parmesan.
Cover baking dish tightly with aluminum foil (spray underside with cooking spray to prevent sticking). Place on a baking sheet to catch drips.
Bake covered for 30 minutes. Remove foil carefully and bake uncovered for 15-20 minutes until cheese is golden brown and bubbling.
Remove from oven and let rest for 15-20 minutes before serving. This allows layers to set so they don't fall apart when cut.
Cut into 12 squares using a sharp knife. Use a wide spatula to lift portions out from the bottom. Garnish with fresh basil if desired.