Could the user who generates the invoice not just delete their secret so the payment would not be successful? Maybe there is a more eloquent way that wouldn't result in users funds being stuck for a period of time though but is cancelling a lightning invoice possible?