Preheat oven to 400 degrees F (200 degrees C). Prepare a baking sheet with cooking spray.
Arrange tomato halves onto prepared baking sheet. Drizzle olive oil over the tomatoes; season with salt and pepper.
Roast tomatoes in preheated oven until edges are crisp, about 35 minutes. Transfer to a cutting board to cool; cut into small chunks.
Bring a large pot of lightly salted water to a boil. Cook angel hair in the boiling water, stirring occasionally until cooked through but firm to the bite, 4 to 5 minutes; drain. Transfer to a large bowl.
Melt butter in a skillet over low heat. Cook and stir onion, garlic, and half the basil in the hot butter until the onion is translucent, about 5 minutes.
Stir shrimp, tomato chunks, mushrooms, and garlic powder into the onion mixture. Increase heat to medium-low and cook and stir until shrimp are bright pink on the outside and the meat is no longer transparent in the center, about 6 minutes.
Pour shrimp mixture over the angel hair pasta; top with Parmesan cheese and lemon juice and toss to coat pasta completely. Garnish with remaining basil.