Thinly slice the onions into long strips.
Heat a large skillet or pan over medium heat and add olive oil. Sauté the onions for 30–40 minutes, stirring occasionally. Allow them to caramelize slowly without burning. You can add 1 teaspoon of sugar to speed up caramelization, but this is optional.
Once caramelized, set the onions aside and prepare the béchamel sauce.
In the same skillet, melt butter over low-medium heat. Whisk in flour and cook for a minute before gradually adding heavy cream. Let the sauce thicken. (If your béchamel sauce starts to get lumpy while cooking, try adding ice-cold water instead of more milk and whisk vigorously. It will quickly smooth out the lumps!)
Stir in ⅔ of the caramelized onions and simmer. Season the sauce with salt, pepper, chopped parsley, and 1 cup of Parmesan cheese.
Meanwhile, bring a large pot of salted water to a boil and cook the pasta until just shy of al dente, as it will finish cooking in the oven.
Combine the cooked pasta with the béchamel sauce, stirring until well mixed.
Transfer the pasta mixture to a baking dish, then top with the remaining ⅓ of caramelized onions and the homemade breadcrumbs.
Bake uncovered at 350°F (175°C) for 10–15 minutes, or until the top is golden and crisp.
Serve immediately and enjoy!
