Heat a large pot over medium-low heat and add the olive oil and butter. Add the onions and garlic. Cook, stirring often, until the onions are translucent, about 6 to 8 minutes. Stir in the artichoke hearts and cook for another 5 minutes.
Add the vegetable stock and bring the mixture to a boil. Reduce the heat and simmer the soup until the artichokes are very tender, about 15 to 20 minutes. They will begin to fall apart and almost melt into the soup.
Very carefully transfer the soup to a blender (place a towel on top!) and blend until smooth. Pour the soup back into the pot.
Stir the cream and crème fraiche into the soup. Bring the mixture to a simmer and let it cook for about 30 minutes – it will reduce a bit. Taste the soup and season it with more salt and pepper if needed. If it tastes too briney, you can stir in a bit more cream or crème fraiche (I’d go with ¼ cup).
Serve the soup with a toast baguette slice on top. Add a grilled artichoke heart. Place a lemon wedge on the side for spritzing!