In a 6-quart, or larger, saucepan or casserole, cook the onion in the oil, stirring occasionally, for 5 minutes.
In a blender or food processor, puree tomatoes and sauce. Add tomato mixture to pan along with water, tomato paste, garlic, carrots, potato, 3 tablespoons of basil, 3 tablespoons of parsley, salt and cayenne to taste. Bring to a boil, reduce to a simmer and, stirring occasionally, cook, partly covered, for 30 minutes.
In a small bowl, soak the bread crumbs in the milk until softened.
In a large bowl, combine bread-crumb mixture with meat, egg, Parmesan, remaining 2 tablespoons basil and parsley, salt, cayenne and ½ cup of sauce. Gradually shred and add meat mix to sauce, a little at a time. Partly cover, and bring sauce to a simmer, stirring occasionally, for 1 hour. Before serving, remove garlic cloves, carrots, and potato.
Use about 2 cups of sauce for each pound of pasta.