I professionally work on a huge project where S1 is used everywhere. The best upgrade path for us is to put S2 in the web container, write new actions in S2, and convert the old S1 actions during maintenance. This scheme is only possible because S2 uses a different package name.
If S3 is going to be a better S2, I can't recommend to my boss moving to S3 if the package name is not "struts3". I need that separate package name to make incremental migration possible. Thoughts?
