Preheat oven to 350F. Spray a casserole dish with your oil of choice. Steam cauliflower for 10-13 minutes or until crisp but tender. Do not overcook. Remove from the heat and set aside.
Heat a large skillet over medium heat. Add butter.
When the butter stops bubbling, add the onion and cook, occasionally stirring until edges are just starting to brown. Add garlic and cook, constantly stirring for one minute.
Pour the balsamic vinegar into the onion and garlic mixture. Simmer over medium heat, scraping up any browned bits, until mixture has a syrupy consistency.
Add in cream, cream cheese, and tomato paste. Stir until mixture is smooth. Stir in one third of the mozzarella cheese (reserving the other two thirds).
Simmer, frequently stirring, until mixture has a thick, creamy consistency. Add oregano, basil, red pepper flakes, salt and pepper. Taste and adjust seasoning if desired. Remove from heat.
In the prepared pan, spread half of the steamed cauliflower. Arrange half of the pepperoni slices over the cauliflower. Sprinkle one half of the remaining mozzarella (reserving the remainder). Layer the rest of the cauliflower and pepperoni slices (but not the mozzarella) in a similar manner. Pour the cream sauce evenly over the layers. Sprinkle with the remaining mozzarella.
Bake in preheated oven for about 20 to 30 minutes or until casserole is bubbly and cheese is lightly browned. Cool 5 to 10 minutes before serving.