Raul,
Question 1: It seems to me that the key issue here is that you want the sample size to be fixed and not random. Here is one strategy that might help.
1. Simulate two data sets, one from each model, with the full sample size that you desire.
2. Join them horizontally such that each row has data generated by each model, e.g., using cbind() or data.frame().
3. Use a random binomial variate to choose which of the two is used for each case, using rbinom().
4. Analyze the data containing only the selected data for each case.
Because you are selecting data within row for each case, your N will be fixed but the proportions from each model will be random.
Question 2: The last time I checked, there are no true factor scores. simulateData() derives the implied moment matrix from the model and simulates data from that moment matrix. It does not simulate latent variable scores and then use those to simulate observed scores. I believe that the reason for adopting this strategy is to accommodate non-recursive models.
Keith