Pat the chicken pieces dry and season them with half of the salt and pepper. Heat a large deep skillet over medium-high heat and add half of the olive oil. When hot, sear the chicken in a single layer until golden and just cooked through, about 4–5 minutes, turning once. Transfer the chicken to a plate and let rest while you build the orzo.
Lower the heat to medium and add the remaining olive oil to the same skillet. Toss in the chopped onion and cook, stirring, until soft and translucent, about 4 minutes. Add the minced garlic and cook 30–45 seconds until fragrant, taking care not to brown it.
Stir the dry orzo into the onion mixture and cook for 1–2 minutes, stirring frequently, until the pasta has a light toasty aroma. Pour in the chicken broth and scrape any browned bits from the pan. Add the remaining salt and pepper, bring the liquid to a simmer, then reduce the heat to medium-low and cover.
Simmer the orzo, covered, for 9–12 minutes, stirring once or twice, until the orzo is tender and most of the liquid is absorbed. If the pan becomes too dry before the orzo is cooked, add a splash more broth or water.
Remove the skillet from the heat. Stir in the pesto, milk, grated Parmesan and lemon zest until the sauce is smooth and creamy. Taste and adjust seasoning if needed.
Return the cooked chicken to the skillet along with the halved cherry tomatoes, spinach and sliced basil. Place the skillet back over low heat and fold everything together until the spinach just wilts and the chicken is heated through, about 2–3 minutes. If you prefer a thicker sauce, simmer uncovered for 1–2 minutes to reduce slightly.
Serve the orzo hot with extra grated Parmesan and torn basil on top. Add a pinch of crushed red pepper if you like a touch of heat.