Heat a medium-size soup pot over medium-high heat. Add olive oil and melt in 2 tablespoons butter. Add onions, garlic, thyme, salt, pepper, ground fennel and paprika. Partially cover pot and cook to soften, 10 minutes or so. Stir in tomato paste until fragrant, 2 minutes, and deglaze the pan with 2 cups chicken stock. Transfer to a food processor, add the tomatoes and process until smooth. Pour back into pot and add the rest of the stock. (Or, use an immersion blender in the soup pot itself to combine tomatoes and stock.) Stir in half the basil. Simmer at a low bubble while you make grilled cheese.
Preheat broiler to high. Trim the skin off 2 opposite sides of the eggplant then very thinly slice into 1/8- to 1/4-inch planks or discs. Season slices with salt and let drain on a towel for a few minutes.
In a small skillet, heat oil over medium heat and fry the garlic carefully until light golden in color. Remove with a fork and let cool. Add rosemary and chili flakes to oil. Chop the crispy, cooled garlic and reserve.
Pat the eggplant slices dry and brush with flavored oil. Broil the eggplant 2-3 minutes per side until charred and tender.
Heat a griddle or nonstick pan over medium heat.
Lightly butter or spread mayo in thin layer on 1 side of each slice of bread and press or sprinkle with Parm.
Build sandwiches of mozzarella, grilled eggplant, tomato, chopped crispy garlic, basil, more cheese and bread, with the butter- or mayo-dressed sides of bread facing out. Grill the eggplant parm sandwiches until golden and the cheese has melted.
Finish soup by stirring the cream into the soup, serve with more basil to garnish. Do not return the soup to boil after adding cream.
Serve sandwiches with tomato soup alongside.