Camel Exception improvement + Revert back synchronous behavior

This is a replay of #400  with common parts with #393 removed.

This one should be handled with care. It is a revert of 393a4dd0d4019cb8fccbbde22f7b0d7ba77c6af8
that merge was to make asynchronous camel tasks to be executed in another thread. This made the next task after task to be executed regardless inependent from camel task.
The camel task could rejoin the process later on on a recieve task. That looked and looks very nice, and there is no need to those not intuitive seda buffers in camel route.
But now, after a second though, I am thinking why I should be different than a normal java delegate service task. In java delegate service task, even if task is asynchronous, the next step waits for it to be finished. It may also be desirable to have something running in another thread in service task.
Anyway I think they should behave the same, either we can introduce another property which makes the task run in a sperate thread and let the process continue. I know there might serious transaction considerations.
Or we should do the same with camel task and be content with those seda buffers.
This pull request contains reverting back to the original, the second option above and is not backward compatible. Some implementations may fail.