I think the qmc needs some time to store these parameters and I could imagine that these values aren't stored directly else within a temp-file and all x seconds checked a service if there any changes and stored it then finally (with the purpose to avoid any conflicts between different services which want to write in this file) - which delayed the whole process. I'm not sure if there are available settings to customize these process and if it would be adviseable to do it.
A sleep-statement within the qmc didn't work because the task meta-data will be read at first and to open the app is then the second step.
I think there would be workarounds possible but very probably more inconvenient then to wait for 5 seconds.
Unfortunately this is the way it's working.
I'll try to explain:
When you save a task, the Management Service needs to be stored in the QVPR database. After this it needs to be sent to the Distribution Service which will update it's local task definitions on file (default location C:\ProgramData\QlikTech\DistributionService\Tasks). Then all Distribution Services within the cluster (same handling with or without cluster) will read the task definitions from file into the memory of the application. First when this is done the task will run with the new definition.
There is no way to see in the QMC when the new definition is ready. But just like you state, if you wait a few seconds it will run with the new defintion. The recommendation is never trigger a task directly after editing it.