Wash and cut the potatoes into even 1-inch chunks so they cook uniformly. Place them in a large pot of cold salted water, bring to a boil, and cook until fork-tender, about 15-20 minutes depending on size. In a separate pot, bring water to a boil and gently add the eggs, cooking for exactly 8 minutes for perfectly set yolks with slightly creamy centers. While both are cooking, you can prep your other ingredients.
While the potatoes and eggs cook, arrange bacon strips on a baking sheet and bake at 400°F for 18 minutes, flipping halfway through, until very crispy and rendered. Simultaneously, whisk together the mayonnaise, sour cream, white wine vinegar, Dijon mustard, and milk in a bowl until smooth and well combined—I like to do this while the bacon's in the oven so everything comes together at the same time. Once the bacon is done, transfer it to a paper towel-lined plate to cool and crisp up further.
Transfer the cooked potatoes to a colander and rinse briefly with cool water, then spread them on a sheet pan to cool faster—this prevents them from becoming mushy when mixed. Remove the eggs from boiling water immediately and place them in an ice bath for at least 5 minutes to stop the cooking. Once cooled, peel and dice both the potatoes and eggs into bite-sized chunks. Crumble the cooled bacon into small pieces and finely chop the celery and green onion. I find that letting the potatoes cool completely before mixing prevents the dressing from becoming warm and thin.
In a large bowl, gently fold together the diced potatoes, eggs, crumbled bacon, celery, and green onion using a rubber spatula—avoid over-mixing to keep the potatoes from breaking down. Pour the dressing from Step 2 over the mixture and fold gently until everything is evenly coated. Season with salt and freshly ground black pepper to taste, stirring gently to combine. Taste and adjust seasoning as needed—the dressing already contains salt, so taste before adding more.