Could be a guidance issue, but SpaceX should be pretty good at that by now. Could be engine underperformance, but we got nominal callouts and it would have to be pretty bad for AFTS to notice with minutes left, so that seems unlikely.
I'd guess engine control (due to damage during staging) is the main suspect. We say the thrusters fighting pretty hard there at the end, which supports that idea.
AFTS seems unlikely this late in the burn, I think they said it was in terminal guidance and it's very hard to laterally change the impact point in any meaningful way with that much velocity. But I agree, it definitely looked like something's venting near the end, too.
There's not much ambiguity for when to destruct. It's just: has it gone far enough off course that it could free-fall outside the predetermined borders where it's acceptable to crash? Then it's time to blow it up so it doesn't fly any farther.