It sounds to me like they just want to insure that no one in their industry uses the domain to compete with them, since they had probably built some traffic on it or people relate the domain to them. That is a reasonable request from them. However, what is not reasonable is that you state no timeframe. It's likely someone could use it for confusion for some time period, maybe anywhere from 2 to 5 years. After that any previous connection with them should fade away so that it wouldn't be a detriment to them. I'd suggest you ask them to limit the time period to something manageable. I forsee them holding you to making the non-compete clause pass on the the next owner as well.
However, where would they be if you just let it drop next year and a competitor picked it up. They would have no way to enforce a contract with you.
To read between the lines, it sounds like this is what they considered:
1. I don't need the domain but want the value from it.
2. I want to make sure that it isn't used to compete against me.
3. If an attempt is made to compete by selling to a third party, I want the right to buy it back to prevent that.
It sounds like they overlooked these considerations:
1. What happens if the right to refusal is higher than they considered paying, and they MUST refuse?
2. What happens if you just let the name drop or expire?
3. What happens if you sell to a third party and they later decide to compete, or sell to a fouth party who does?
If I were them, I'd handle it this way.
1. I would continue to own the domain to maintain control that it didn't get used in a competing way for some specified period (maybe 5 years), or dropped to the open market.
2. I'd allow a non-competing party to lease or rent the domain for my safety period, after which they could buy it for a specified price, maybe with the lease payments going toward the purchase.
Optionally, they could employ you as a third party while they own the domain to find an end user for them for a commission. You agree on a price now, and you keep any sales amount over that cost as long as the final end user will agree to their terms for a specified period. By knowing what they want, you can provide them income from an unused asset and still provide a profit for yourself and maybe development or PPC income in the mean time. I would guess if they knew you just intended to resell in stead of develop, they probably wouldn't sell to you in the first place.