1- The run() method is called from an event loop. I
did verify that motor settings, etc. that are changed in the run() method had no effect until the run() method was completed. Writing a procedural-type method where we set power/waited, set a different power/waited, resulted in the robot sitting still until all the sleep()-ing was complete and then moving at the power set last.
2-Didn't time it. My perception was that it runs very quickly.
3-We slept for several seconds (10-15 total) during our abortive attempts at a procedural autonomous mode and that didn't cause the framework to terminate our mode. But like any event-driven program, you'll want to avoid blocking the event loop in order to maintain a responsive robot.
4-Not sure what you're asking... You'd be able to terminate/restart the OpMode from the driver control station at will. Or if you want the Autonomous mode to stop itself you would just define an "All Stop" state and go into that state.
5-Your OpMode program stays alive while it's active, so you should be able store data in class variables that will persist between run() invocations. I didn't test what happens if there is an orientation change on the robot controller. Typically an orientation change causes your Activity to reload, so you have to manually persist data to handle that.
6-I saw nothing that would prevent worker threads.
7-I'm waiting for hardware to come out so I can answer this question myself...
I know this is not 100% helpful since it's unofficial and you can't really hang your hat on it, but I feel pretty confident in what I'm telling you. The takeaway is that autonomous will need to be event-driven rather than sequential logic. I'm sure some teams are going to struggle a bit before they figure this out. I personally plan to help the community as much as I am able by sharing what we learn. I realize that many teams do not have experience software developers to lean on for help.
In thinking about how to write event-driven autonomous, I am coming around to the opinion that another level of abstraction might be necessary for some teams. I come from a C# background where I'm accustomed to writing functional programs and one of the things I'm curious to try is to see if Java8 lambdas can be made to work within this framework (there are some postings about retrofitting lambdas into Java7, so I have hope). I think lambdas would potentially provide a slick way to write event-driven state machines to handle autonomous programs. Assuming I can get access to some hardware over the summer, I plan to work on something and if it pans out I will share it with the community.