About point 1, this is a good idea.
So with last beta http://beta.plantuml.net/plantuml.jar you can now have :
@startgantt
[Prototype design] lasts 13 days
[Test prototype] lasts 4 days and 1 week
[Test prototype] starts 1 week and 2 days after [Prototype design]'s end
@endgantt
The big issue with month is duration. As you know, it can be 28, 29, 30 or 31 days. So sentence like "[foo] lasts 3 months" is somehow ambiguous. That's the point that prevents us from implementing month duration.
About point 3, you can use preprocessor, like in this example. You can do many (nasty) things thanks to the preprocessor.
About point 2 and 4, it would be nice if you could post a very simple example so that we better understand your need.
Thanks!