Beat the cool butter on low to medium-low for 60–90 seconds until creamy with no firm pieces. It should not look pale, whipped, or glossy.
Add the sifted sugar and milk powder mixture in thirds. Mix each addition on low for 20 seconds, scraping the bowl between each. Once combined, mix on medium-low for 45–60 seconds until the base looks thick.
Add the salt, lemon zest, and vanilla. Mix on low for 15 seconds, then scrape and fold twice.
With the mixer on low, add the cold cream cheese one piece at a time, waiting until each piece disappears before adding the next. Scrape the bowl after the last piece, then mix 20–30 seconds until the frosting looks satiny.
Check consistency: lift the beater — the frosting should form a soft point with a bent tip, and a spatula channel should hold for several seconds. Stop mixing as soon as the texture is smooth.
Use immediately for spreading, or chill the covered bowl for 20–30 minutes before piping. Fold gently after chilling — do not rewhip.