main_document_idle_time_ and main_document_suspending_time_ are designed for different considerations. main_document_idle_time_ is used to check whether the main document is really idle(doing nothing) during this time, if it is really idle, we can close it.
main_document_suspending_time_ gives user agent a chance to cancel the main document from suspending state.
We need this to implement the API 'onSuspendCanceled', like https://developer.chrome.com/apps/runtime.html#event-onSuspendCanceled.