Two different guarantees
Delegation grants one principal the ability to act on another's behalf within a defined scope, while preserving a record that shows both identities: who delegated the authority, and who exercised it. Impersonation lets one principal act as though it were another, often for legitimate purposes like support or debugging — but typically without that same dual record, so ordinary logs can end up showing the impersonated identity as the actor, even though it took no part in the decision.
The difference is not academic. When something goes wrong, delegation's dual record answers 'who authorized this and who carried it out' cleanly. Impersonation without safeguards can make that question unanswerable after the fact, because the system's own records point at the wrong identity.
Making impersonation safe when it's genuinely needed
Impersonation has legitimate uses — a support engineer needs to see exactly what a customer sees to diagnose a reported problem. Making it safe means logging the impersonation event separately from the impersonated identity's own actions, bounding it in time, and restricting it to a narrow, reviewable set of circumstances, rather than treating it as an ordinary, unlogged administrative convenience.