I'm not aware that you can have dynamic ribbon buttons.
One possible solution is to have all possible buttons and add them to the ribbon. The buttons that are not applicable should be disabled. This can be achieved using standard SharePoint development of the ribbon. I have successfully used @omlin's great codeplex project for customizing the ribbon before, the code would typically be part of a feature receiver.
I would then add the buttons (Delay, Finished, Start) to the edit form's ribbon. Then create js method for the various ribbon buttons that triggers the enable/disabled state, e.g. DelayButtonEnabled(), FinishedButtonEnabled() and so forth. The logic here can use e.g. SPServices to query the list item and based on the item decide if the ribbon button should be enabled or not.
Finally you would have to create js methods that will run once the buttons are clicked, e.g. DelayButtonClicked(), FinishedButtonClicked().