whenever sender marks the trail as failed, end_ts must be updated.
Scheduler should send the entire message dictionary to the sender instead of
parsing the contents for simplicity.
Look for receiver errors in ack messages and update the trail appropriately
before quiting.
When receiver has a local error, make the best effort to send the error message
back to sender.
Handle publisher related network errors separately from low level errors.
Don't wait more than 30 seconds continuously while receiving fsdata. If the
sender doesn't send anything in 30 seconds, assume the sender error'd out.