title: onComplete and aggregate with completionTimeout
body: <p>I'm trying to run an <code>onCompletion()</code> block on my route, which contains an aggregate definition with <code>completionTimeout</code>. It seems like <code>onCompletion</code> is called before the route is actually completed, since I get log entries from <code>OnCompletion</code> before <code>AggregateTimeoutChecker</code> log entries.</p>
  
  <p>How can I make <code>onComplete</code> wait for aggregation timeout?</p>
  
  <p>Of course I can add a delay greater than completionTimeout to onCompletion, but that will slow down my tests a lot.</p>
  
  <p>My route looks like this:</p>
  
  <pre><code>from(fileEndpoint)
      .bean(externalLogger, "start")
      .onCompletion()
           .bean(externalLogger, "end") // &lt;-- Gets called too early
      .end()
      .split().tokenize("\n")
      .bean(MyBean.class)
      .aggregate(header("CamelFileName"), ...)
           .completionSize(size)
           .completionTimeout(500)
      .bean(AggregatesProcessor.class); // &lt;-- some changes here don't arrive
                                        //     at onCompletion
  </code></pre>