Place the bacon, 3 cups chicken stock, potatoes, and onion in a large slow cooker and stir well. The mixture should look brothy rather than packed, which gives the potatoes room to soften evenly as they cook.
Cover and cook on low for 6-8 hours or on high for 3-4 hours until the potatoes are fully tender. They should yield easily when pressed with a fork, with just the faintest bit of resistance before the piece breaks apart.
Melt the bacon grease or butter in a small saucepan over medium-high heat, whisk in the flour, and cook for 1 minute while stirring occasionally. The mixture will shift from pale and pasty to slightly deeper in color and smell toasty instead of raw.
Gradually whisk in the evaporated milk and keep whisking until the mixture is completely smooth, then let it come to a simmer. It should thicken into a silky, spoon-coating base with no floury lumps.
Pour the hot milk mixture into the slow cooker and stir to combine, then add the cheddar cheese, Greek yogurt or sour cream, salt, and pepper. The soup should look creamy and unified, not streaky, as the cheese melts into the broth.
Mash about half of the potatoes with a potato masher or large spoon if you want a thicker soup, or stir in 1-2 cups of warmed chicken or vegetable stock if you want it thinner. Mashing should turn the broth velvety while still leaving some potato pieces intact for texture.
Taste and adjust with more salt and pepper if needed, then serve warm with your preferred toppings. The finished soup should be rich, smooth, and thick enough to hold bacon and cheese on the surface for a moment before they sink.