Heat oven to 400 degrees. In a large, cold skillet, add bacon. Turn heat to medium and cook until crisp. Stir occasionally.
Using a slotted spoon, move bacon to a paper towel-lined plate. Add chicken to bacon grease. Sprinkle with salt and pepper. Cook until browned on the outside. Using a slotted spoon, remove the chicken to another plate.
Add the mushrooms and cook until browned, stirring only occasionally. If the skillet gets too dry, add a tablespoon or two of butter. Also remove from skillet.
Add ¼ cup butter to the skillet and melt. Add garlic and cook for about 30 seconds, stirring constantly. Whisk in the flour. Continuously whisk for about three minutes.
Slowly pour in chicken stock and heavy cream. Whisk until the mixture smooths out. Add bacon, chicken and mushrooms back to the skillet. Bring to a simmer.
Stir in ¼ teaspoon salt, ¼ teaspoon pepper, cheddar, Parmesan, thyme, sage, rosemary, Worcestershire sauce and ground nutmeg. Keep stirring until the cheese melts. Turn off heat.
Using a rolling pin, roll the puff pastry so that it's large enough to cover a 9-inch-by-13-inch baking dish. Pour the cream mixture into the baking dish. Place the puff pastry on top. Pinch the puff pastry so that it folds against the interior sides of the baking dish. Brush the whisked egg on the puff pastry using a pastry brush. You probably won't need the entire egg.
Place in oven in the puff pastry is nice and brown to your liking and the cream mixture is bubbling on the side, about 20-25 minutes. Let set for about five minutes before serving. Enjoy!