Currently, clients can send messages to services, but can't have any expectation of guaranteeing that a message can be handled in a certain timeframe. (An exception is the service-to-service request/response workflow, where a service can specify a timeout but will just silently drop the message from its external_requests loop if too much time has passed.)
What we want to happen is to allow for a Client (be it Client or Service) to specify a timeout in the message header, and require the Service to act on the message within the bounds of the timeout. (This could potentially be any number of "when the service starts processing the message" or "when the service completes processing the message".) The Service should attempt to send an error message back if it was unable to handle the message within the required timeframe (generating an error message is trivial and requires almost no resources other than an active thread to handle).
This to a limited extent may supersede #15 , depending on whether or not the (service-to-service | client) code wants to explicitly wait on the message within their function.