Currently the AstrometryTask and Astrometry class share work. E.g. distortion is done in AstrometryTask but matching is done in Astrometry. AstrometryTask also makes assumptions about what fields are available in the solver config.
The AstrometryTask interface should be sanitized so that it can be used as a thin wrapper for calling any astrometry solver. Top level config params should go in the AstrometryTaskConfig and solver level work should be done in the solver class and configured at the solver level.