Honestly, it sounds like both estimates are unrealistically low.
For someone to do a big rust repair job like that AND paint it, two-tone on top of that, I wouldn't expect much in terms of quality/longevity. There are cases when someone does good work for a decent price, but don't expect it.
Think about what all has to go into fixing the roof skin by itself (ignoring the rust at the base of the vynil roof on the quarters). Pull vynil and trim. Remove drip rail moldings. Remove windshield and rear window moldings. Remove windshield and back glass. Remove headliner (and everything that has to come out first). Realistically, they should remove the whole interior to prevent damage/fire, not to mention cutting/grinding/welding smell is awful, and your interior will smell like that if exposed. Then they have to drill out spot welds and strategically cut and remove the roof skin, then repeat on whatever they are getting the replacement metal off of. Prep, grind, hammer/dolly flanges and remove (likely) checked original lacquer and/or surface rust from the donor roof. Reweld the 50 or so spot welds, butt weld the seams. Grind, fill imperfections. Etch prime, fill prime. Block, sand. Seal, paint. Reinstall glass (IF it came out ok and doesn't need replaced as well). Reinstall trim. Reinstall interior.
Then there's the rest of the car and all it's imperfections, disassembly/reassembly. Not to mention all the labor in making patches for the other rust (that's not part of the roof). Realistically, just like on the donor roof, the aged, checked old GM lacquer paint needs to be stripped to bare metal, etched, filled, fill primed, etc.
For $2,800, although that's a lot of money, I wouldn't expect much. For quality paint and materials, that's about what you should expect to pay for...paint and materials. If you can do it yourself, it's always going to be much cheaper. I honestly think they would fiberglass the rust and do a poor paint job for that much.