Fill a large pot with lightly salted water and bring to a boil. Stir in penne and return to a boil. Cook pasta uncovered, stirring occasionally, until cooked through but still firm to the bite, about 11 minutes; drain.
Place asparagus into a saucepan, add a little water, and place over medium heat; cover pan and let asparagus steam until bright green and tender, 3 to 4 minutes. Drain.
Heat olive oil with butter and lemon juice in a large saucepan over medium-low heat until butter melts; cook and stir shallot in hot oil and butter mixture until it just begins to soften, 1 to 2 minutes. Stir garlic into shallot mixture and cook until shallot and garlic are opaque, 3 more minutes. Stir asparagus and chicken into mixture; cook until heated through, about 5 minutes.
Toss pasta with chicken and vegetables to combine; mix tomato and basil into salad and serve warm.