Solar / lunar positions in ECEF using SOFA C libraries
A few responses to my own question:

(a) TDB time isn't critical because it only varies from TT by a few milliseconds.

(b) The resulting vector was not ECI but the vector from the earth to the sun in the celestial frame.  I needed to build the celestial to terrestrial rotation matrix using iauC2t00a() (assuming zero polar motion since it's generally less than 20 meters), and then rotate the resulting pv (position, velocity) vector-pair into the terrestrial frame using iauRxpv().

(c) (Still no clue on this one.)