As described in https://github.com/bitcoindevkit/bdk_wallet/issues/41#issuecomment-2784700516, a better name for `cancel_tx` in it's current state is `unreserve_change_address`. I think it would be wise to implement freeing up reserved UTXOs at the same time, and then have `cancel_tx` call `unreserve_change_address`.