Preheat oven to 350°. Roast whole squash on a rimmed baking pan until tender enough for a long skewer to go all the way through neck of squash, about 1 1/4 hours. Let cool.
While squash cools, heat oil in a large pot over medium heat. Add red onion and apple and cook, covered, until onion is translucent and apple is tender, about 5 minutes. Add spices and cook, stirring, until fragrant, about 1 minute.
Halve cooled squash lengthwise and scrape out seeds and discard, then scoop out flesh and set aside.
Remove onion-apple mixture from heat and stir in cooked squash and 2 cups broth. Whirl in batches in a blender until very smooth. Return to pot and heat over medium heat to warm through and blend flavors, 5 to 10 minutes. Add more broth if needed to thin to desired consistency; season with salt and pepper to taste.
Ladle soup into bowls. Spoon crème fraîche onto each and serve with toppings.