**Caramelize the Onions:** Heat olive oil in a large skillet over medium-low heat. Add the sliced onions, salt, and pepper. Cook slowly, stirring occasionally, for 30-45 minutes, or until the onions are deeply golden brown and sweet. Remove from skillet and set aside.
**Brown the Meat:** In the same skillet (drain excess fat if necessary), add the ground meat and cook over medium-high heat, breaking it up with a spoon, until browned. Add the minced garlic and cook for 1 minute more until fragrant. Drain any excess grease.
**Make the Sauce:** Stir in the crushed tomatoes, tomato sauce, oregano, basil, and red pepper flakes (if using) into the skillet with the meat. Bring to a simmer, then reduce heat and let it cook for at least 15 minutes, allowing the flavors to meld. Taste and adjust seasoning with salt and pepper.
**Prepare the Ricotta Mixture:** In a medium bowl, combine the ricotta cheese, beaten egg, fresh parsley, and 1/4 teaspoon salt and pepper. Mix well.
**Assemble the Lasagna:** Preheat your oven to 375°F (190°C). Spread about 1 cup of the meat sauce on the bottom of a 9x13 inch baking dish. Arrange a layer of cooked lasagna noodles over the sauce. Spread half of the ricotta mixture over the noodles, followed by a generous layer of caramelized onions. Sprinkle with about one-third of the smoked Gouda and mozzarella cheeses.
**Layer Up:** Top with another layer of noodles, followed by the remaining meat sauce. Add the remaining caramelized onions, then another layer of noodles. Spread the remaining ricotta mixture over the noodles, then the remaining caramelized onions.
**Top and Bake:** Pour the remaining meat sauce over the top layer of noodles and onions. Sprinkle evenly with the remaining smoked Gouda, mozzarella, and all of the Parmesan cheese. Cover the baking dish tightly with aluminum foil.
**Bake and Rest:** Bake for 25 minutes. Remove the foil and bake for another 20-25 minutes, or until the cheese is bubbly and golden brown. Let the lasagna rest for at least 10-15 minutes before slicing and serving. This allows the layers to set.