Melt together the olive oil and butter In a large Dutch oven over medium heat. Add the onions and cook 3-5 minutes. Add the shallots, garlic, celery, carrots, thyme, rosemary, and fennel. Season with salt and pepper. Cook another 5 minutes.
Pour in the broth and bring to a boil over high heat. Stir in the chicken and broccoli, and if you have one – a parmesan rind. Cover and cook for 20 - 30 minutes, until the chicken is cooked through. At this point, the soup can also simmer on low for up to 4-6 hours.
Remove the chicken from the pot, discard the skin and bones, and shred the meat. If you used a parmesan rind, remove that and discard. Stir in the pesto, spinach, and lemon. Taste, and season with salt and pepper. Bring the soup back to a boil, then add the noodles and cook 6-8 minutes, until soft. Stir in the parsley. (Note - if making ahead, read below notes)
Serve the soup with parmesan and dill, if desired.