1. No limits
2. Yes this is possible, but not out of the box. You'll have to write some custom code to select and start the appropriate version in your application.
3. Yes, standard behaviour is that started processes continue to running following their initial definition, newly started definitions are using the new latest definition. But, as said above, if this does not suit your needs, you can select the appropriate definition in your application.