So I believe the following settings should be enough to get you going with Activiti Multi-Instance and Async. It worked for me.
Testing this in a unit test can be troublesome as you are testing async jobs which can complete or not complete by the time the Junit test completes.
Here is a snippet of my unit test log showing that the service tasks were executed asynchronously in the multi-instance loop.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.activiti.designer.test.MultiInstanceTest
Dec 19, 2016 12:18:34 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [activiti.cfg.xml]
Dec 19, 2016 12:18:36 PM org.activiti.engine.impl.db.DbSqlSession executeSchemaResource
INFO: performing create on engine with resource org/activiti/db/create/activiti.h2.create.engine.sql
Dec 19, 2016 12:18:37 PM org.activiti.engine.impl.db.DbSqlSession executeSchemaResource
INFO: performing create on history with resource org/activiti/db/create/activiti.h2.create.history.sql
Dec 19, 2016 12:18:37 PM org.activiti.engine.impl.db.DbSqlSession executeSchemaResource
INFO: performing create on identity with resource org/activiti/db/create/activiti.h2.create.identity.sql
Dec 19, 2016 12:18:37 PM org.activiti.engine.impl.ProcessEngineImpl <init>
INFO: ProcessEngine default created
Dec 19, 2016 12:18:37 PM org.activiti.engine.impl.asyncexecutor.DefaultAsyncJobExecutor start
INFO: Starting up the default async job executor [org.activiti.engine.impl.asyncexecutor.DefaultAsyncJobExecutor].
Dec 19, 2016 12:18:37 PM org.activiti.engine.impl.asyncexecutor.DefaultAsyncJobExecutor startExecutingAsyncJobs
INFO: Creating thread pool queue of size 100
Dec 19, 2016 12:18:37 PM org.activiti.engine.impl.asyncexecutor.DefaultAsyncJobExecutor startExecutingAsyncJobs
INFO: Creating executor service with corePoolSize 2, maxPoolSize 10 and keepAliveTime 5000
Dec 19, 2016 12:18:37 PM org.activiti.engine.impl.asyncexecutor.AcquireTimerJobsRunnable run
INFO: {} starting to acquire async jobs due
Dec 19, 2016 12:18:37 PM org.activiti.engine.impl.asyncexecutor.AcquireAsyncJobsDueRunnable run
INFO: {} starting to acquire async jobs due
Dec 19, 2016 12:18:37 PM org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy
INFO: Processing resource multiInstanceProcess.bpmn20.xml
Dec 19, 2016 12:18:38 PM java.util.logging.LogManager$RootLogger log
INFO: Instance started, id 5 multiInstanceProcess:1:4
Dec 19, 2016 12:18:38 PM java.util.logging.LogManager$RootLogger log
INFO: Execute create service task for execution id 14
Dec 19, 2016 12:18:38 PM java.util.logging.LogManager$RootLogger log
INFO: Execute create service task for execution id 18
Dec 19, 2016 12:18:38 PM java.util.logging.LogManager$RootLogger log
INFO: Running processes: 0
Dec 19, 2016 12:18:38 PM java.util.logging.LogManager$RootLogger log
INFO: Execute create service task for execution id 20
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.707 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.308s
[INFO] Finished at: Mon Dec 19 12:18:38 ICT 2016
[INFO] Final Memory: 10M/167M
[INFO] ------------------------------------------------------------------------
Hope this helps,
Thanks,
Thong Huynh