Soften the vegetables: Melt the butter in a large Dutch oven over medium heat. Add the onion, carrots, and celery and cook 6-7 minutes, stirring now and then, until the onion is translucent and the carrots have lost their crunch.
Add the garlic and flour: Stir in the garlic and cook 1 minute. Sprinkle the flour over the vegetables and stir constantly for another minute, until it coats everything and smells toasty instead of raw.
Pour in the broth: Add the chicken broth in a slow stream, whisking as you go so the flour doesn't clump. Stir in the thyme, nutmeg, salt, and pepper.
Poach the chicken: Slide the halved chicken breasts into the pot, bring it to a gentle simmer, cover, and cook 10-12 minutes, until the thickest piece reads 165°F on an instant-read thermometer. Move the chicken to a cutting board.
Cook the gnocchi: Bring the pot back to a simmer, add the gnocchi, and cook 3-4 minutes, until they float and are tender all the way through. While they cook, shred the chicken with two forks.
Finish with the half-and-half and spinach: Turn the heat to low. Stir in the half-and-half, the shredded chicken, and the spinach. Cook 2-3 minutes, just until the spinach wilts and the soup is steaming. Keep it under a boil once the dairy is in or it can curdle.
Serve: Ladle into bowls and top each one with grated parmesan.
Notes
Halve the chicken breasts horizontally so they poach evenly, and cook them to an internal temperature of 165°F. Add the gnocchi in the last 4 minutes so they stay pillowy instead of dissolving, and keep the soup below a boil once the half-and-half goes in so the dairy doesn't curdle.