Preheat broiler (on medium heat of you have the option).
Fry the bacon in a large oven-safe skillet over medium heat until crispy. Use a slotted spoon to transfer to a paper towel lined plate to soak up some of the oil. Set aside.
Drain most of the bacon fat from the pan, leaving about 1-2 tablespoons for added flavour (adjust this amount to your liking). In the same pan, melt the butter, add the onion and cook until transparent (about 2 minutes), while scraping up any browned bits leftover from the bacon. Add the broccoli and season with salt and pepper and cook while stirring occasionally for about 3 minutes, or until just turning vibrant in colour.
Add in the garlic and stir it through the broccoli for 30 seconds, until fragrant. Pour in the cream, reduce heat down to low and let simmer for about 3-4 while stirring occasionally, or until the sauce thickens to your liking* (SEE NOTES) (If sauce is too thin, stir in the cornstarch slurry to combine.)
Add the bacon and give everything a good mix to combine all of the flavours together. Top with the mozzarella and parmesan cheeses. Broil until cheese is bubbling and golden, and broccoli is done to your liking (about 2-3 minutes).
Season with a little extra pepper, if desired, before serving. You can also sprinkle with fresh chopped parsley, thyme or rosemary.