Scusa, ma se ho detto che:
std::sort() richiede che l'operatore < sia globale.
perché hai aggiunto un parametro nell'operatore < della funzione membro, che accetta un solo parametro e non è globale?
Piuttosto dal momento che stai usando puntatori dovrai modificare la funzione così:

codice:
bool operator <(const ATask& lhs, const ATask& rhs ){
    // invoca l'operatore definito nella classe.
    return (*lhs) < (*rhs) ;
}
o ti ritrovi a confrontare gli idirizzi dei puntatori invece degli oggetti.