Heat butter and olive oil in a saucepan over medium-high heat. Saute onion, celery, and garlic until onion is translucent, about 5 minutes. Whisk in flour and stir until the mixture becomes thick and light golden brown, about 2 minutes. Remove from heat.
Bring 2 cups chicken broth to a boil in a pot. Cook gnocchi in the boiling broth until they float to the top, 2 to 4 minutes. Transfer gnocchi to a plate and reserve the broth in the pot. Place chicken in the broth and return it to a boil. Cook until chicken is no longer pink inside, about 7 minutes. Transfer chicken to a plate.
Stir spinach, carrots, parsley, and thyme into the saucepan with the flour mixture and place over medium heat. Stir in half-and-half and bring to a boil. Cook until starting to thicken, about 3 minutes. Add 2 cups chicken broth. Bring back to a boil and simmer until soup is thick and smooth, 10 to 15 minutes.
Stir gnocchi and chicken into the soup and season with salt and pepper.