Soak the beans: Place the beans in a large bowl or pot and cover with cold water by 2 inches. Cover and let stand overnight. Drain and rinse.
Fry the bacon: In a large Dutch oven over medium heat, cook the bacon until crisp, about 7 to 8 minutes. Use a slotted spoon to remove it to a paper towel lined plate. Reserve 2 tablespoons of drippings in the pot and discard the rest.
Cook the vegetables: Add the onion and celery to the drippings. Cook over medium-high heat until they start to soften, about 5 minutes. Add the garlic and cook 30 seconds more, stirring constantly.
Deglaze the pot: Stir in 1 cup of the chicken broth and use a wooden spoon to scrape up the browned bits from the bottom.
Add the beans: Add the beans, remaining 3 cups of broth, ham hock, bay leaf, thyme, and black pepper to taste. Do not add salt yet. Pour in enough cold water to cover the beans by about 2 inches and stir well.
Simmer: Bring to a boil, then reduce the heat to low or medium-low for a gentle simmer. Partially cover and simmer for about 45 minutes, stirring occasionally. Add more water if the beans start to look dry.
Season and finish cooking: Stir in about 1 teaspoon of salt. Continue simmering for 30 to 45 more minutes, until the beans are tender.
Mash and season: Discard the 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 adjust the salt and pepper.
Serve: Ladle into bowls. Garnish with the crispy bacon, chow chow, herbs, and chopped onion. Serve with cornbread.