Heat oven to 200C/180C gas 6. Cut the squash into large cubes, about 4cm across, then toss in a large roasting tin with half the olive oil for 30 minutes, turning once during cooking, until golden and soft.
While the squash cooks, melt the butter with the remaining oil in a large saucepan, then add the onions, garlic and 3/4 of the chilli. Cover and cook on a very low heat for 15-20 minutes until the onions are completely soft.
Tip the squash into the pan, add the stock and the creme fraiche, then whizz with a stick blender until smooth. For a really silky soup, put the soup into a liquidizer and blitz in batches. Return to the pan, gently reheat, then season to taste. Serve the soup in bowls with swirls of creme fraiche and a scattering of the remaining chopped chilli.