Just my two cents...
In the city you'll probably find Shilshole and Duwamish to be a little cheaper than Elliot Bay. They're both Port of Seattle marinas
while Elliot Bay is private. I don't know as far as availability for Shilshole and Duwamish but for the three years I've been there, Elliot Bay seems to get pretty full around mid-May. I think Elliot Bay has the nicest facilities and is the nicest overall. Edmonds is about 20 minutes from downtown. Another option on Puget Sound
would be Eagle Harbor which is a 30 minute ferry
ride from downtown.
I would say a lot of it depends on where you live and where you want to go. Duwamish is about 30-45 mins south of Elliot Bay, Elliot Bay is about an hour south of Shilshole, and Shilshole is an hour and a half south of Edmonds (assuming ~6 kts as direct as possible.) So Duwamish could end up being a couple hours longer trip to Port Townsend than Edmonds if you wanted to go there for the weekend. I personally prefer Seattle and north. If you live in Des Moines (couldn't tell from the post) Duwamish is going to be significantly easier to get to than Elliot Bay or Shilshole.
It's fun to be on Lake Union but it can take anywhere from an hour to four hours (not often but it happens) to get between it an the Puget Sound
so if you're planning on doing a lot of shorter trips in Puget Sound I'd suggest looking for something outside the locks.
I haven't noticed a material difference in the wind
north vs south.
Anyway, hope that helps.