In a large 6-8 quart pot, melt butter over medium heat. Add carrots, celery, onion, red bell pepper, and mushrooms. Cook for 6-8 minutes, stirring every 2 minutes, until vegetables are tender and onions are translucent.
In separate saucepan, cook diced potatoes in 1 1/2 cups chicken broth for 12-15 minutes until easily pierced with a fork. Drain potatoes.
Add cooked potatoes to vegetable mixture. Sprinkle flour over everything and stir constantly for 2 minutes to create roux that coats all vegetables.
Gradually stir in remaining 3 cups chicken broth and half and half cream, whisking constantly. Cook over medium heat, stirring every 2-3 minutes, until mixture coats the back of a spoon (8-10 minutes).
Reduce heat to medium-low. Add 3/4 of bacon bits, dry mustard, hot sauce, garlic salt, salt, and pepper. Simmer 5 minutes, stirring occasionally.
Remove pot completely from heat. Gradually stir in shredded cheese one handful at a time, stirring constantly until completely melted. Do not return to heat.
Taste and adjust seasonings. Ladle into bowls and top each serving with remaining bacon bits.
Notes
Use russet potatoes for best starchy texture that helps thicken soup naturally.
Never let soup boil after adding cheese to prevent curdling. Keep heat low and stir constantly.
Freshly shredded cheese melts better than pre-shredded. Cook bacon fresh for maximum flavor.