Currently in zeebe, the timers (eg. Boundary event) has only constant values for duration.
But sometimes the available processing time is not constant.
In our case we have 20 seconds to answer the request, but the timer started based on message creation time not when it arrived.
Therefore we have only 10-18 seconds, depends on load, network, etc.
Maybe you can modify timer (boundary event) to get value from instance variable.