Heat a medium size soup pot over medium-high heat. Add the olive oil and melt in 2 tablespoons butter. Add the onions, garlic, thyme, salt, pepper, ground fennel and paprika. Partially cover the pot and cook to soften, 10 minutes or so. Stir in the tomato paste until fragrant, 2 minutes, and deglaze the pan with 2 cups chicken stock. Transfer to a food processor; add in the tomatoes and process until smooth. Pour back into the 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 the grilled cheese.
Pre-heat the broiler to high. Trim the skin off two opposite sides of the eggplant, then very thinly slice into 1/8-1/4-inch planks or discs. Season the slices with salt and let drain on a towel for a few minutes.
In a small skillet, heat the oil over medium heat and fry the garlic carefully until light golden in color. Remove with a fork and let cool. Add the rosemary and chili flakes to the oil. Chop the crispy, cooled garlic and reserve.
Pat the eggplant slices dry and brush with the 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 the mayo in a thin layer on one side of each slice of bread and press or sprinkle with the Parmigiano Reggiano cheese.
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 the soup by stirring the cream into the soup; serve with more basil to garnish. Do not return the soup to a boil after adding the cream.
Serve the sandwiches with tomato soup alongside.