In a large saucepan, add bacon. Heat over medium, stirring often, until fully rendered and crisp. Remove with a slotted spoon. Let drain, then roughly chop into 1/2″ or so pieces. Set aside.
Add ham to the drippings in the pan and saute, stirring, until ham is warmed through and a little darkened and crispy in spots. Remove and set aside. (Keep separate from the bacon.)
Drain all but about 2 tablespoons of the drippings from the pan. Add garlic and stir until fragrant. Add the milk, cream cheese, and American cheese and stir until cheeses are melted. Add in about 1/2 of the grated Cheddar and stir.
Quickly while stirring often, add the salt, pepper, rub, hot sauce, and barbecue sauce. Add the corn, 2/3rds of the reserved bacon, all of the reserved ham, and stir. Keep an eye on the pan, stirring now and then (do NOT allow to scorch) while turning the broiler on.
Turn broiler on to low and set a rack so there is about 2 to 3 inches of clearance between the top of the cast iron skillet and the broiler.
Continue heating the corn, stirring as necessary, until hot and bubbly. Place half of corn mixture in an 8″ greased cast iron skillet. Layer in the diced cheese. Add the rest of the corn mixture. Sprinkle with remaining 1/2 cup Cheddar cheese. Place under broiler until browned in spots, about 10 minutes, but watch. (It will not be golden brown and will be spotty).
Remove pan from oven and garnish with remaining bacon pieces and green onion. Best served immediately; will thicken upon standing.
Find it online: https://frugalhausfrau.com/2023/02/09/kansas-city-cheesy-corn/