Heat oven to 200C/180C fan/gas 6. Toss the diced squash on a baking tray with 2 tbsp of the oil. Roast in the oven for 20-25 mins until the squash is tender and browning. Put the bigger chunks in a microwave-proof bowl with about 200ml water. Cover with cling film, pierce a couple of times, and microwave on High for 10-14 mins until really soft. Drain off the water and leave to cool a bit.
Meanwhile, put the remaining oil in a frying pan with the onions, sage and garlic, and cook gently until softened. Set aside to cool.
Mash the microwaved squash, or whizz in a food processor, then mix with the ricotta until smooth. Season well and taste – it may need a little sugar to bring out the sweetness of the squash. Stir
in the onion mixture and walnuts, then gently stir in the roasted squash, being careful not to break it up. Spoon into a disposable piping bag and snip off the end to a width that will just fit inside
one of your cannelloni tubes.
Whisk the mascarpone with the milk, a generous grating of nutmeg, the Parmesan and plenty of seasoning (especially salt) until smooth. Spread just over half the sauce into a big ovenproof dish.
Prepare the pasta in small batches (because it’s easier to fill the tubes when warm). Bring a large saucepan of salted water to the boil. Add a few tubes at a time and boil for 2 mins, stirring occasionally so they don’t stick. Lift out with a slotted spoon and cool under cold water just until you can handle them. Use scissors to snip each tube in half, pipe the squash filling into each tube and stand upright, snuggled together, in your dish. Keep repeating the process (boiling tubes, halving, then filling), until all the ingredients are used up.
Heat oven to 200C/180C fan/gas 6 (if it’s not already on). Drizzle the remaining mascarpone sauce all over the pasta tubes, scatter with extra sage leaves, a few more walnuts and some Parmesan. Bake for 30 mins until the top is crisp, the sauce bubbling and pasta softened.