1. avoid thread leak if exception thrown in planning 2. avoid memory release delays since the timer task hold CascadesContext object