Make pesto: Combine basil, pine nuts, oil and garlic in a food processor. Blend until paste forms, stopping often to push down basil. Add cheeses and sea salt. Blend until smooth. Transfer to small bowl. (Makes about 2/3 cup. Can be made 1 day ahead. Top with 1/4 inch olive oil and chill.)
Prepare pasta: Cook pasta per package directions. Drain and return to pot.
Heat oil in a large skillet over medium heat while pasta cooks. Add asparagus and freshly ground black pepper to taste. Cook 4 minutes. Add tomatoes and cook until asparagus are tender 2-3 minutes longer. Remove from heat.
Add pesto, spinach, and chicken (if using) to pasta and toss until well-combined. Sprinkle with grated or shaved Parmesan. Serve warm, or chill and serve cold.