Bring a large pot of lightly salted water to a boil. Add penne and cook, stirring occasionally, until tender yet firm to the bite, about 11 minutes; drain.
Melt butter in a large skillet over medium heat. Sauté onion in butter until tender, 2 to 3 minutes. Stir flour and garlic powder into onion.
Gradually stir in milk. Heat to just below boiling point, then gradually stir in cheese until sauce is smooth. Stir in peas and mushrooms; cook over low heat until warmed through, about 4 minutes.
Toss in smoked salmon and cook until heated through, about 2 minutes. Serve over pasta.