Bring a large pot of salted water to a boil and cook 1 lb. spaghetti according to package directions until al dente. Drain and keep warm.
In a large bowl, combine 1.25 pounds ground beef, 1/2 cup milk, 1/2 cup seasoned bread crumbs, 1 whole egg, 3 tablespoons chopped parsley, 3 cloves garlic (minced), 1/4 cup onion (finely chopped), 1/4 cup grated Parmesan cheese, and salt and pepper to taste. Mix until just combined.
Using a 3-tablespoon cookie scoop (or by hand), portion the meat mixture and roll into balls. Set the formed meatballs on a plate.
Place a heavy-bottomed pot or Dutch oven over medium heat. Add olive oil (1/2 cup total, divided). Heat 2 tablespoons of the olive oil, add half the meatballs, and brown on all sides (they do not need to be cooked through). Transfer browned meatballs to a plate.
Add another 2 tablespoons of the olive oil to the pot, brown the remaining meatballs on all sides, and transfer them to the same plate. Reserve the remaining olive oil for the sauce.
To the pot with the meat drippings, add the reserved olive oil if needed and 1 cup diced onion. Cook over medium heat until the onion is nearly tender, about 4 minutes. Stir in 2 cloves garlic (minced) and cook until fragrant, about 30 seconds.
Pour in 2 cans tomato sauce and 1 cup beef broth. Add 2 teaspoons dried basil, 1 teaspoon Italian seasoning, 1 tablespoon sugar, and salt and pepper to taste. Stir to combine.
Gently add the browned meatballs back into the sauce, turning them to coat. Bring the sauce to a gentle simmer, then reduce heat to low or medium-low and simmer, uncovered, for 30–45 minutes, or until the meatballs are fully cooked and tender. Stir occasionally.
Taste the sauce and adjust seasoning with salt and pepper if needed.
Serve the meatballs and sauce over the cooked spaghetti and garnish with chopped fresh basil.