You can use a combination of these to set a long grace period, and then have your pre-stop hook wait for your process to finish (whatever criteria you define as finished).
We chose to set a fixed upper bound to ensure outside administrators can observe the requested grace period when draining nodes or performing maintenance.
http://kubernetes.io/docs/api-reference/v1/definitions/#_v1_...
http://kubernetes.io/docs/api-reference/v1/definitions/#_v1_...
edit: As soon I posted this I remembered this is a feature; deleted original hack. :)