Preheat the oven to 375°F. Cut the squash lengthwise in half. Scrape out the seeds and loose membranes. Place the squash halves, cut side down, on a parchment paper-lined baking sheet. Bake the squash for 1 hour, or until the flesh is quite tender and can be easily pierced with a fork. Cool the squash 10 minutes, and then use a fork to gently scrape out cooked the strands of spaghetti squash into a bowl. Toss in the salt, pepper and olive oil. Set the squash aside until needed below.
Place the beef, onion, celery, bell pepper and garlic in a pot set over medium heat. Cook and stir until the meat is cooked through, about 10 minutes. Carefully drain the excess fat from the pot.
Add the remaining ingredients, except cheese and garnish, and bring to a gentle simmer. Gently simmer, partially covered (don’t completely cover; steam needs to escape), for 25 to 30 minutes, stirring occasionally, or until sauce is thickened and rich in colour.
When the sauce is almost ready, reheat the spaghetti squash in the microwave a few minutes, or by warming it up in a skillet. Serve the meat sauce and spaghetti squash in pasta bowls. Sprinkle with freshly grated Parmesan cheese and garnish each bowl, if desired, with a basil or parsley sprig.