All I ask is to do the changes in the core separately.
+1
I'm in agreement with you on the order of events, Costin, 100%. <antlib> with tasks/datatypes is fair game to migrate into HEAD, then core changes to make the other components work as pluggable pieces, then refactoring <antlib> to support it.
I also agree with the use of interfaces (not just marker ones, per se) for distinguishing what components are used for. Again, its cool that Ant supports making lightweight tasks, but I think it should be more rigid in the future and mandating components implement a particular interface. Most of us at least extend Task when writing tasks, I suspect, too. :)
Erik