Heat large skillet over medium heat. Once pan is hot, add diced bacon and cook until crisp. Transfer cooked bacon to plate lined with paper towels and set aside.
Transfer bacon grease to heat-resistant bowl or glass jar. Return 1 tablespoon bacon grease to skillet and add diced onion. Cook until onion has softened, then add chopped garlic and cook 30 to 60 seconds or until garlic is fragrant.
Transfer onion-garlic mixture to Crockpot and add diced potatoes and chicken stock. Cover with lid and cook 3 hours on high heat or 5 hours on low heat, until potatoes are fork-tender.
Toward end of cook time, warm 3 tablespoons reserved bacon grease in medium saucepan over medium heat. Once grease is hot, sprinkle flour into saucepan and whisk well until roux or paste is formed.
Continue cooking paste over medium heat just until golden, then slowly pour in 2 cups warmed milk. Whisk vigorously and cook until mixture has thickened, approximately 2 to 4 minutes. Pour thickened mixture into Crockpot with fully-cooked potatoes and chicken stock.
Use potato masher to mash potatoes to desired consistency, then add cheddar cheese, sour cream, salt, and pepper to Crockpot. Stir well to incorporate ingredients, then cover and cook on high 30 minutes. After 30 minutes, ladle soup into serving bowls and garnish with additional cheese, bacon, green onions, and/or black pepper if desired. Serve warm.