When I was converting my command block modules to 1.9, I realized that the execution of a chain of commands blocks does not always finished in one tick. The delay-in-ticks grows as the length of chain increases. According to what Searge described in the
MC-86960 issue, A scheduled chain of commands block should always be executed in the same tick, but it is actually not the case.
Here are the steps I took to experiment on this issue, you can reproduce it in similar ways.
1. First I placed a repeating command block, and connected it with a chain consists of 1200 chain command blocks (with auto = true)
2. For the 400th, 800th, and 1200th block in the chain, I entered "/say checkpoint 1", "/say checkpoint 2", and "/say end point" in them.
3. Entered "testfor @a" for all the other command blocks in the chain.
4. Then I place another repeating command block as an independent chain, entered "/me tick".
5. Finally, turn off command output, and activate the two repeating chains and see chat messages for the result.
There is a screenshot in attachment file to show you the result I got.
If this is intended, please tell me the reason and what should I do if I want to make sure all commands in a chain are executed in the exact same tick. Thank you.