Preheat oven to 425°F and spray a large baking dish with non-stick cooking spray. Set aside.
Add the olive oil to a large skillet set over medium-high heat. Add the ground Italian sausage and use a large spoon or spatula to break apart into small pieces until cooked and golden, approximately 6-8 minutes. Remove the sausage to a clean plate and set aside.
Leave approximately 1 tablespoon of sausage grease in the skillet - discard the rest.
Return your skillet to medium heat. Add the onions and cook, stirring often for 6-8 minutes, or until softened. Add the minced garlic, red chili flakes (if using), oregano, salt, and black pepper. Mix well to combine and continue to cook for approximately 1 minute, stirring continuously.
Return the sausage back to the skillet and combine with the onions.
Meanwhile, add the canned tomatoes to a large blender and pulse until blended - but not pureed. Transfer all but half a cup of your processed tomatoes to the skillet with the sausage and onions. Transfer the half cup of remaining tomatoes to a small bowl and mix with one tablespoon of tomato paste. Add to your sauce. Bring everything to a low simmer, then reduce heat to low. Stir occasionally.
Bring a large pot of salted water to a boil over high heat. Cook pasta until al dente, approximately 2 minutes less than package instructions. Drain into a colander and set aside.
As your pasta cooks, lightly beat your egg in a medium-size bowl. Add the ricotta, 1 cup mozzarella cheese, and 1/2 cup of parmesan cheese. Mix well to combine.
To assemble, remove the meat sauce from heat and spread a thin layer over the bottom of your pan. Arrange the cooked pasta in an even layer. Top with your remaining meat sauce mixture, ricotta mixture, and sprinkle with the remaining mozzarella cheese.
Transfer to the oven and bake for 15-25 minutes, or until the top is golden and the sauce is bubbling around the edges.