Preheat oven to 350 degrees F.
In a large skillet, melt butter with olive oil over medium heat. Add 1 cup onions and saute 5-8 minutes, or until the onions are soft.
Add 2-3 cloves of garlic and saute one more minute.
In a small bowl combine the basil, salt, pepper, and flour. Add to the onion mixture and whisk together until all the oil is absorbed.
In a large glass measuring cup, add milk, Greek yogurt, and chicken broth. Stir to combine.
Gradually add the liquid to the pan, whisking constantly. Go as slow as you need to make sure the liquid gets absorbed. You want to whisk out any chunks.
Cook over medium heat, stirring until the mixture is thickened slightly, just a couple minutes. Add the chicken and turn off the heat.
In a medium bowl, stir together ricotta, pesto, and 1 egg.
To assemble: wet the bottom of a 2 quart casserole dish with some of the white sauce. Just enough so the noodles don't stick.
Layer 3 no-boil lasagna noodles on top. Spread with 1/3 of the ricotta mixture. Top with a handful of fresh spinach. Add 1/3 of the white sauce and spread to the edges. Top with 1/3 of the mozzarella cheese.
Repeat twice more. Noodles, ricotta, spinach, white sauce, cheese.
Sprinkle the top with Parmesan cheese.
Spray a sheet of foil with nonstick spray and cover the lasagna.
Bake at 350 for about 50 minutes, or until cooked and tender.
Remove the foil and turn up the oven temperature to broil. Broil until golden brown and bubbly, 1 to 3 minutes. Keep an eye on it!
Let stand for 10 minutes before serving. I like to serve this with some bread, a big salad, and maybe some other green vegetable.