Pat salmon dry, remove any pin bones, cut into 1-inch chunks, season lightly with salt and pepper, and refrigerate. Dice onion and celery, cube potatoes and submerge in cold water to prevent browning, and mince garlic.
Heat a large Dutch oven over medium heat, add diced bacon, and cook for 6–8 minutes until crispy. Remove bacon with a slotted spoon to a paper towel-lined plate and leave about 2 tablespoons of fat in the pot.
Add butter to the pot, then sauté onion for 4–5 minutes until translucent, add celery and cook 3 more minutes, then stir in garlic and cook 30–45 seconds until fragrant.
Sprinkle flour over the vegetables and stir constantly for 2 minutes until the mixture forms a thick paste and smells slightly nutty, scraping the bottom of the pot to prevent sticking.
Gradually pour in the seafood stock while stirring to prevent lumps, then stir in the milk, drained potatoes, bay leaves, thyme, smoked paprika, salt, and pepper. Bring to a gentle boil, then reduce to a simmer.
Simmer uncovered for 15–18 minutes, stirring every few minutes, until potatoes are fork-tender but still hold their shape. Adjust consistency with additional stock or milk as needed.
Stir in the corn kernels and heavy cream, cook for 3–4 minutes until heated through, then reduce heat to low.
Gently fold in the salmon chunks and cook for 4–6 minutes until opaque and flaky, then remove from heat, stir in dill, parsley, and lemon juice, discard bay leaves, and serve garnished with reserved crispy bacon.