Place a 6 quart pot over medium-high heat. Add the bacon and cook, stirring frequently, until the bacon is browned, 6 to 7 minutes. Remove the bacon to a paper-towel lined plate or rack. Pour off all but 3 tablespoons of the bacon fat.
Decrease the heat to medium and add the onions to the pot. Cook, stirring occasionally until the onion is softened and beginning to brown around the edges, approximately 6 minutes. Add the broth, peanuts and thyme. Increase the heat to high, and bring to a boil. Once the mixture reaches a boil, reduce the heat to medium-low to maintain a rapid simmer. Cook until the peanuts begin to loosen from their skins and the broth is reduced by 1/4, approximately 20 to 25 minutes.
Turn off the heat and puree the mixture with a hand-held stick blender until smooth. Add the milk, vinegar, salt and pepper and puree until combined. Turn the heat back to medium and cook until warmed through, 5 to 7 minutes. Garnish with the reserved bacon and serve immediately.
Wash the peanuts in cool water until the water runs clear. Soak in cool water for 30 minutes to loosen any remaining dirt.
Drain and rinse the peanuts. Add the peanuts to a 12-quart pot along with the salt and 3 gallons of water. Stir well. Cover and cook on high for 4 hours. Check the texture of the peanut at this point for doneness. When done, boiled peanuts should have a similar texture to a cooked dry bean. It should hold its shape, but not crunch when bitten. Add more water throughout the cooking process, if needed. If necessary, continue cooking for 3 to 4 hours longer.
Drain the peanuts and store in a covered container in the refrigerator for up to 1 week.
*Cook's note: The cooking time can vary greatly depending on how fresh the peanuts are. The fresher the peanut, the less time it will take to cook.
approximately 4 pounds in shell and 2 pounds out of shell