You can do almost all of this, with the PS estimated by MLE, using teffects in Stata. Unfortunately, while IPW uses normalized weights, AIPW does not. And, for some reason, ATET (ATT) is not an option with AIPW. You won't get moderating effects using teffects, though.
Would you consider translating this thread into a Stata example/walk-through?