Place beans in a large bowl or pot. Cover with cold water by 2 inches. Cover and let stand overnight. Drain and rinse the beans.
In a large Dutch oven over medium heat, cook bacon until crisp, about 7-8 minutes. Use a slotted spoon to remove the bacon to a paper towel-lined plate; reserve 2 tablespoons of drippings in the pot (discard any excess).
Add the onion and celery to the drippings in the pot. Cook over medium-high heat until the vegetables start to soften, about 5 minutes. Add the garlic; cook for 30 more seconds, stirring constantly. Stir in 1 cup of the chicken broth. Use a wooden spoon to scrape up any browned bits from the bottom of the pot.
Add the beans, the remaining 3 cups of broth, the ham hock, bay leaf, thyme, and ground black pepper to taste. Do not add salt at this time. Pour in enough cold water to cover the beans by about 2 inches. Give everything a good stir.
Bring the mixture to a boil, then reduce the heat to low or medium-low so that the liquid is at a gentle simmer. Partially cover the pot with a lid, allowing some of the steam to escape. Simmer for about 45 minutes, stirring occasionally. If the beans start to look dry, add more water to keep them covered. Stir in about a teaspoon of salt. Continue simmering for 30-45 more minutes, until tender.
Discard ham hock, bay leaf, and thyme sprig. Use the back of a spoon or a potato masher to mash some of the beans, thickening the broth. Taste and season with additional salt and pepper, if necessary.
Ladle into bowls. Garnish with the crispy bacon, chow chow, herbs, and/or chopped onion. Serve with a side of cornbread.