The initial problem you have seems to be in allocating Qt threads. In BV each process execution is run in its own thread, but they are python threads, not QThread, so I don't really understand then QThreads are allocated. The Windows version of brainvisa has problems within Qt, and I don't know if your problem is linked to the ones we met. Just to tell news, we have now switched to a cross-compilation system to build the Windows version from Linux, and (by chance?) we do not have any longer the problems we had before, so I don't know if it would solve your problem.
Anyway it would be interesting to know if it happens only on Windows.
Now, if you iterate in your own loop (case a) maybe it will avoid the thead allocation part in brainvisa processing infrastructure, so maybe it could help in your situation.
Otherwise, have you tried the "run in parallel" mode ? in this case iterations are run in separate processes, so it would be similar to your solution b) in addition to using multiple core/processors.
For the bug in sulcus parameterization, I let Olivier handle it (I hope he reads your message). But in any iteration you can specify lists of filenames in the iteration dialog, so you can work around the problem (even if it is maybe not very convenient to build the list of filenames externally and copy/paste it to BV iteration interface).
Is it possible to pass parameters to the script that is being run by using brainvisa -b -e **path**
No actually, this option is very simplistic, it just runs the (single) argument of the -e option through excecfile(). But using a small python script like the snippet in my last message, it is easy to do.