When a simulation is submitted, and there is a job in the queuing system (either in the Q or the R state), it should not be possible to submit the simulation again to run a concurrent job. Currently, a new job is created in the Q state.
My approach would be to perform a qstat (or equivalent) and determine if there is already a job in the queuing system from this simulation (by checking the known job ids of the simulation against the output from qstat). If there is no job in the queueing system, I would submit a new job. If there are jobs in the queuing system, I would submit a "chained" job to run when the last existing one is finished. This means that you don't need new syntax to indicate that you want to chain. If it is considered that this would be too confusing for new users, the decision of whether to chain or abort when there is an existing job could be made optional with a boolean option in the configuration file.