Bring a large pot of salted water to a boil. Cook the pasta until al dente, tender but still slightly firm.
Meanwhile in a large skillet over medium heat, melt 3 tablespoons of butter and olive oil. Add the onions and cook for about 2 minutes. Then add the asparagus and cook until crisp-tender, about 3 minutes. Remove the asparagus and set aside.
Add the garlic to the skillet and cook for 30 seconds, stirring often. Add the remaining tablespoon of butter, cream and lemon juice and bring to a simmer. Lower the heat to keep the mixture warm.
Season with salt and pepper to taste. Add the chicken, pine nuts and asparagus. Drain the pasta in a colander and reserve some of the cooking water. Add the pasta to the cream mixture and toss with the cheese. If the pasta mixture has become thick, thin it with some of the reserved cooking water. Add red pepper flakes and serve immediately.