Heat 2 tbsp oil in a large saucepan over a high heat. Add the garlic, onions, chilli and carrots. Once sizzling, lower the heat to medium, cover and cook for 8-10 mins until caramelised. Stir in the mushrooms and season. Cook for 3 mins, then add a splash of the wine.
Heat the remaining oil in another pan over a medium heat, then fry the bacon until crisp, about 5 mins. Remove and roughly chop. Cook the mince in the same pan for 5 mins, stirring until cooked through. Stir the meat into the veg and pour in a quarter of the remaining wine.
Add the tomato purée and cook for 1 min, then add the rest of the ingredients, except the milk, spaghetti, parmesan and bread, stirring until thoroughly combined. Cook over a medium heat with the lid slightly ajar for 4 hrs to reduce, checking regularly to make sure it doesn’t dry out. Add the wine at intervals as and when needed. After 4 hrs, most of the wine should be used up and the sauce should be thick.
When it’s almost time to serve, cook the pasta following pack instructions. Meanwhile, pour the milk into the sauce and stir well. Drain the pasta and return to the pan. Stir in the parmesan, then divide the spaghetti between large, shallow bowls and top each with a generous serving of the sauce. Grate over more parmesan and serve with a crusty baguette, if you like.