Place a Dutch oven over medium heat and add the diced bacon or salt pork. Cook for 6 to 8 minutes, stirring now and then, until crisp and the fat has rendered out.
Use a slotted spoon to lift the bacon onto a paper-towel-lined plate, leaving the rendered fat in the pot. Set the bacon aside to stir back in near the end.
Add the butter to the bacon fat and let it melt over medium heat. Stir in the diced onion and celery with a pinch of salt and cook for 5 to 6 minutes until soft and translucent but not browned.
Sprinkle the flour evenly over the vegetables and stir constantly for 1 to 2 minutes so the raw flour taste cooks off and the mixture smells nutty.
Pour in the fish stock or clam juice slowly, stirring the whole time to work out any lumps. Add the cubed potatoes, bay leaves, and thyme.
Raise the heat and bring the pot to a gentle simmer. Cook for 12 to 15 minutes, until the potatoes are fork-tender but not falling apart.
Lower the heat so the liquid is barely bubbling. Add the fish chunks, press them gently under the surface, and simmer for 5 to 7 minutes until the fish turns opaque and flakes easily. Avoid heavy stirring.
Take the pot off the heat and pour in the whole milk and heavy cream, stirring gently to combine. Return to low heat and warm through for 3 to 4 minutes, never letting it boil.
Remove and discard the bay leaves. Stir in the reserved bacon, then taste and adjust with the remaining salt and the black pepper.
Ladle into bowls and top with chopped parsley. Serve hot with oyster crackers on the side if you like.