Allow called message handlers to return new per message timeout values

In some cases messages are intended to be ignored for timeout purposes, .eg. when docs fail
filter tests the controller might want to track those to report to a replicator about progress
but we still want the timeout to be honored. This patch allows the controller to return a new
timeout in this case, namely the remaining time left.

BugzID: 17709