We just booked the Marriott for our pre-cruise in April. It was a weekend rate and included breakfast for 119 Euro. They also had a pre-paid no cancellation rate without breakfast for 65 Euro, which we will switch to once it gets closer to the time, provided that the rate is still available.
Had some pretty good reviews on trip advisor. It is a only 5-7 minute walk to the Sete Rio train station by the zoo (for the train to Sintra) and metro station (5 minutes into the historic district) so it looked pretty convenient.