Description
Currently our task start handling code works as follows:
1. Send INIT message to driver.
2. Start task.
3. Send status updates as periodic heartbeat with 4 seconds period; first RUNNING status received by java code triggers RunningTask event.
If the task completes fast enough, periodic heartbeat might not catch task in process of execution, and thus driver will never receive RunningTask event. All our tests which rely on RunningTask have tasks which either sleep for 5+ seconds or wait until a RunningTask handler sends a message to the task, so they never uncover this issue. This seems to be a bad design. We need to fix this (and probably also reduce amount of sleep in some tests in spirit of REEF-1203).