### Apache Airflow version

main (development)

### Operating System

macOS 11.5.2

### Versions of Apache Airflow Providers

_No response_

### Deployment

Virtualenv installation

### Deployment details

_No response_

### What happened

If your first try fails and you have retries enabled, the subsequent tries skip right to the final `next_method(**next_kwargs)` instead of starting with `execute` again.

### What you expected to happen

Like we reset things like start date, we should wipe `next_method` and `next_kwargs` so we can retry the task from the beginning.

### How to reproduce

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/models/taskinstance.py
task_id_by_key[ti.dag_id][ti.run_id][ti.try_number].add(ti.task_id)
    if task_id_by_key:
        
        
        
        
        
        
        conditions = or_(
            and_(
                TR.dag_id == dag_id,
                or_(
                    and_(
                        TR.run_id == run_id,
                        or_(
                            and_(TR.try_number == try_number, TR.task_id.in_(task_ids))
                            for try_number, task_ids in task_tries.items()
                        ),
                    )
                    for run_id, task_tries in run_ids.items()
                ),
            )
            for dag_id, run_ids in task_id_by_key.items()
        )
        delete_qry = TR.__table__.delete().where(conditions)
        session.execute(delete_qry)
    if job_ids:
        from airflow.jobs.base_job import BaseJob
        for job in session.query(BaseJob).filter(BaseJob.id.in_(job_ids)).all():
            job.state = State.RESTARTING