Pat the chicken dry with paper towels, then combine it in a bowl with garlic powder, salt, black pepper, and red pepper flakes, tossing to coat evenly.
Heat 1 tablespoon of olive oil in a large skillet over medium-high heat until shimmering.
Working in batches if needed to avoid crowding, sear the chicken for 10-12 minutes, turning occasionally, until golden brown on all sides and cooked through.
Transfer to a cutting board and let rest for a few minutes while you prepare the remaining ingredients.
Add the remaining 1 tablespoon of olive oil to the same skillet over medium-high heat.
Add the asparagus and cook for 2-3 minutes until lightly charred and tender-crisp, then transfer to a plate.
Reduce heat to medium, add the diced onion to the pan, and cook for 3 minutes, stirring occasionally, until softened and beginning to caramelize.
Add the minced garlic and cook for another 30 seconds until fragrant.
Add the orzo to the pan with the onion and garlic, stirring constantly for 2-3 minutes until it turns golden and releases a nutty aroma.
Pour in the chicken broth and add the thyme sprigs, stirring to combine and scraping up any browned bits from the bottom of the pan.
Bring the mixture to a gentle simmer, then cover the skillet and cook for 7 minutes, stirring halfway through, until the orzo is mostly tender and has absorbed much of the liquid.
While the orzo finishes cooking, slice the cooked chicken from Step 1 into bite-sized pieces.
When the orzo is tender, remove the thyme sprigs and stir in the sliced chicken, cooked asparagus from Step 2, half and half, freshly grated Parmesan cheese, and lemon zest.
I recommend adding the spinach last and stirring gently so it wilts evenly without breaking apart.
Cook for 1-2 minutes until everything is heated through and the spinach is just wilted.
