Cook bacon in a saucepan over medium heat until crisp, about 5 minutes. Remove and set aside, leaving about 1 tablespoon fat in the pan.
Add butter to the pan. Sauté shallot and celery until very soft, 5 to 6 minutes. Add garlic and cook for 30 seconds.
Sprinkle in flour and cook, stirring constantly, for 1 to 2 minutes. Slowly whisk in broth, then milk. Bring just to a gentle simmer (be careful not to boil).
Reduce heat to low. Add cheese in small handfuls, stirring until melted and smooth.
Stir in Worcestershire, hot sauce, and mustard. Season with pepper. Serve topped with reserved bacon.