A useless employee not being fired does not only breed resentment in coworkers, it also erodes trust in management: Other employees will lose their trust that leadership is willing to follow through with hard decisions for the good of the company (speaking from personal experience).
Management being capricious is basically "news at 11", but management being perceived as hesitant/incompetent can be MUCH worse EVEN from the PoV of an employee (=> because that indicates the company has no future)!
It sounds to me like the effects on the rest of the team has already set in. That is, anyone reasonable would already have questions about management / leadership.
Making the change now:
- won't save the situation
- it might, as others have mention actually undermine any trust the rest of the team has left
- invite legal action on the part of the dismissed employee.
All that aside, giving the rogue employee the benefit of the doubt, it feels like it might be health / mental health related issue. Random time off being the tell.
Sucks for the team. But dismissing someone who needs help is a tough call.
Management being capricious is basically "news at 11", but management being perceived as hesitant/incompetent can be MUCH worse EVEN from the PoV of an employee (=> because that indicates the company has no future)!