We check that the version that of Elasticsearch that the plugin was declared to have been built against matches the version you are running it with exactly. This is because plugins get access to all the internal interfaces and classes which we change as needed.
It should work fine. All plugins are loaded in child classloaders.
Plugins can't extend plugins at this point. They can't see plugins at all because of the child classloader. We needed this to make plugin security work. You can certainly fork the analysis-icu plugin as a starting point.
It is a static method on ESTestCase so it ought to work....
I don't really know ICU so I'm not sure. One advantage that you have is that you tightly control all the versions so while upgrading ICU may break it, no one is going to sneak that in on you.