[#79509] Rework cancellation cost calculation

This should fix the bug where cancellation confirmations were not always calculating cancellation costs.
This feels a little weird to me. Would it be better to make `reservation` a `build_stubbed` and stub some of those other methods that are declared at the beginning?