In a large pot, combine the chicken broth, 2 teaspoons salt, fennel, and onions. Place chicken in the pot and bring to a boil over high heat. Reduce heat to low, cover, and simmer about 1 hour or until chicken is tender and completely cooked. Remove chicken from liquid and place on a cooling rack set on a baking sheet to cool. Reserve the cooking liquid for another use.
Melt 1 tablespoon butter in a large frying pan over medium heat. When it foams, add 1/4 of the mushrooms. Sauté, stirring occasionally, until they are golden brown, about 10 minutes, then remove from pan. Season well with salt and freshly ground black pepper and set aside. Cook remaining mushrooms in 3 more batches, using 1 tablespoon of butter per batch.
When the chicken is cool enough to handle, remove skin and cut meat into 1-inch cubes. Discard skin and bones, and reserve meat.
Heat oven to 375°F Combine half-and-half and milk in a medium saucepan. Bring to a simmer over medium-low heat. Reduce heat to low to keep warm.
In a large Dutch oven or heavy-bottomed pot that is wider than it is tall, melt 10 tablespoons of butter over medium heat. When it foams, add leek and garlic, and cook until softened, about 2 minutes. Season with salt.
Sift flour over the leek mixture and stir to combine. Cook, stirring constantly, until flour is well incorporated and has lost its raw flavor, about 3 minutes. Remove from heat; slowly add heated half-and-half and milk, stirring constantly until smooth. Return to stove over medium heat and cook sauce until it simmers and begins to thicken, about 3 minutes. Remove from heat and add the hot sauce, Parmigiano-Reggiano, Emmenthaler, and chopped thyme; stir until cheese melts.
Stir in the reserved chicken and mushrooms, and the frozen artichoke hearts; taste mixture and adjust seasoning if necessary.
Butter a 13-by-9-inch baking dish. Spread the chicken-and-artichoke mixture in an even layer, sprinkle with breadcrumbs, and bake, uncovered, until the edges are bubbling, breadcrumbs are browned, and casserole is heated through, about 30 minutes. Allow casserole to sit for 5 minutes before serving.