Heat 2 tablespoons of the olive oil in a large pot over medium high heat. Add the red onion, tomatoes, 1 cup water, tomato paste and sugar. With the back of a chef’s knife, tap the sprigs of basil to release the juices. Add the basil, salt and pepper to the tomato pot and bring to a bowl. Reduce the heat to low and simmer until it reduces by one quarter, about 1 hour. Remove the basil sprigs and onion and discard.
Preheat an oven to 400°F. Heat the remaining 1 tablespoon olive oil in a frying pan over medium heat. Add the yellow onion and cook, stirring occasionally, until soft, 7 minutes. Add the garlic and continue to cook, stirring occasionally, until the garlic perfumes the air, 30 to 60 seconds. Remove from the pan and place the onions and garlic in a bowl.
In a second bowl, add the breadcrumbs and milk and stir together to moisten the breadcrumbs. Squeeze the breadcrumbs gently to get rid of the excess milk and add them to the onions and garlic. Discard the excess milk. Add the oregano, tomato paste, and ground pork, ground beef, ricotta, egg and ½ cup of the Parmigiano and mix together until well mixed. Season with salt and pepper. Form the mixture into 30 meatballs about 1 1/4-inch diameter. Place on an oiled baking sheet. Bake until brown on the outside, 10 to 15 minutes.
After the tomato sauce has cooked for 1 ¼ hours, add the meatballs and continue to cook until the sauce has reduced slightly and the meatballs are cooked, 30 minutes. Stir gently or the tender meatballs will fall apart. If the sauce gets too thick, add additional water.
Before serving, bring a large pot of salted water to a boil. Add the rigatoni and boil until al dente, 8 to 12 minutes. Drain and toss the rigatoni with the tomato sauce and meatballs. Place in a large heated bowl and serve immediately garnished with the remaining 1 cup Parmigiano Reggiano.