There's nothing wrong with asking two questions! If we didn't like answering questions, we wouldn't be here. Actually, I get more annoyed by people going all E.E. Cummings with personal pronouns, but it's a minor compulsion, and I can deal with it when I have to.
You're right: properties set in the sub-projects (i.e. other ant files with targets called with the ant task) are not available to the main project after the sub-project target completes. However, properties set in the main project are available to the sub-projects. Ref IDs are too, but not by default. You have to set inheritRefs=true in the ant task.
You should always have targets in the main ant build file that call targets in the sub-projects. After all, that's what makes them sub-projects. Your init task should exist in the main build file, and the properties will be propagated when you "ant" execute targets in the sub-projects.
I'm not sure what you mean by main calling init and init calling main. If you sometimes need to be able to call targets in the sub-projects without going through the main file, I'm afraid you will have to do what you can with properties files, and cut and paste the rest into init tasks in the sub-projects. You may find that you don't need all those filesets and such in all the sub-projects anyway.