Just providing an update in case anyone else gets in the same situation in the future. Even though it was a "non refundable" ticket, Delta processed the refund with no questions, after offering to reroute me through European gateways as someone suggested above. When I declined it was no problem.
So now it's Madrid after Christmas instead of Budapest. Presumably I'll have slightly nicer weather at least!