The number of tokens to submit with a voucher redemption is not consistently respected
PaymentController.redeem
accepts a number of tokens and supplies a default. If a value is given, it is used. However, if redemption doesn't succeed here then when the retry logic activates and the redemption is tried again, the value is ignored and the default is used.
This is related to the fact that on retries the original tokens are not re-used as they should be (since the correct number of tokens is already persisted in the VoucherStore
but this is ignored during retries as well).