Extra assertions as per @manishtomar's suggestions
Rename termination as cancellation, since that's the only time it happens