Under the send email portion you might want to add a choice and put if contract date is empty do nothing.
We've had some problems where leads get into a tokened wait step and things change but are left in the wait step. Like if they were to cancel the contract but you still emailed them 6 months down the line.
The best thing you could probably do is create a seperate campaign that if the contract date field changes from one value to empty you can use the remove from flow step and remove the lead from the wait step. I would do this with all campaigns that have long wait steps. It also alows leads to enter and exit wait steps if things change.
Cheers,
Pieter
Also
Doing a triggered campaign you will have to wait six months until you actually start sending emails so,
Under schedule you can schedule recurrence to run once a month. Then in the smart list you would do contract date is greater than 6 months ago as well as add another filter of contract date after a certain time so its not sent to leads before what you want. Make it so leads can run through the flow once. So many ways to skin a cat in Marketo.