Brown the ground beef: Heat 1 tablespoon of olive oil in a large Dutch oven or heavy-bottomed pot over medium-high heat. Add the ground beef and cook for approximately 8-10 minutes, breaking it into small crumbles with a wooden spoon or spatula, until browned and cooked through. Brown in batches if necessary to prevent overcrowding. Drain excess grease if needed, then transfer the beef to a clean plate and set aside.
Sauté the onions: Reduce the heat to medium and add the remaining tablespoon of olive oil to the same pot. Add the diced onions and cook for 5-7 minutes, stirring occasionally, until softened, translucent, and lightly golden around the edges.
Cook the bell pepper and garlic: Add the finely diced green bell pepper and continue cooking for 3-4 minutes, stirring occasionally, until it begins to soften. Stir in the minced garlic and a pinch of salt. Cook for 1 minute, stirring constantly, until fragrant.
Add the tomato paste and herbs: Stir in the tomato paste, dried basil, thyme, oregano, and a pinch of black pepper. Cook for 1-2 minutes, stirring frequently, until the tomato paste darkens slightly and coats the vegetables evenly.
Add the tomatoes and remaining ingredients: Pour in the diced tomatoes with their juices, crushed tomatoes, and tomato sauce. Stir in the granulated sugar, 1 tablespoon of Worcestershire sauce, and 1/4 cup water. Mix thoroughly, scraping up any browned bits from the bottom of the pot.
Return the beef and simmer: Add the browned ground beef back to the pot and stir until evenly combined. Bring the sauce to a gentle simmer, then reduce the heat to low. Partially cover and simmer for 20-30 minutes, stirring occasionally, until the vegetables are tender and the sauce is thick and flavorful. Simmer longer if desired. If the sauce is too thin, remove the lid and continue simmering uncovered. If it becomes too thick, add water 1-2 tablespoons at a time.
Cook the spaghetti and serve: While the sauce simmers, bring a large pot of salted water to a boil. Cook the spaghetti according to package directions until al dente. Before serving, taste the sauce and adjust with additional salt, black pepper, or Worcestershire sauce, if needed. Drain the spaghetti and serve with the homemade meat sauce, freshly grated Parmesan cheese, and chopped parsley or basil, if desired.