Why the limit is shorter than the restart
The manager waits a fixed time before the next step. The drain must finish inside that time.
The observable proof
A request in flight completes after the signal is sent. The completion is the proof.
A server that is stopped in the middle of a request loses the request. Closing cleanly is a signal that means finish what is started, and the meaning is a contract with the process manager.
About 1 min of reading
Prove the drain finishes
Write the drain limit
Before you run it, say out loud what it will print. Then open the answer.
Attempt a request longer than the limit
Before you run it, say out loud what it will print. Then open the answer.
Write the exit code
Before you run it, say out loud what it will print. Then open the answer.
The manager waits a fixed time before the next step. The drain must finish inside that time.
A request in flight completes after the signal is sent. The completion is the proof.
Stop is not kill. The process is asked to stop, and the process decides when it is safe.
Waiting forever for a request that never finishes is a stop that never happens. The limit is a number.
A clean stop exits zero. A non-zero exit is read as a failure by whatever restarts the process.
Each one is defined here on this site. Open the entry for the full definition and the other words it points at.