Braking a small hall sensor BLDC motor on a ballscrew
Someone correct me if I'm wrong, but I believe for active braking you don't actually have to drive the motor as if it's turning in the opposite direction, though this would have the greatest effect and stress. I believe you can also slow it down by commutating the motor in the same, normal, direction but reducing the phase advance towards zero (motor lock). This is gentler but braking takes longer. It doesn't have to be a smooth reduction in phase advance either. You can decrease it in steps and just wait a period of time between each step and the rotor inertia smooths everything out.

Personally, I'm not sure why you need to drive the motor in reverse to brake it when you could outright set it to zero phase advance and just cause it to lock up. Outright locking it up like that is pretty hard on everything already but maybe there are applications where you really do need to brake it that quickly.

Maybe driving things in reverse to brake comes from the day of brushed motors where you don't have control over the commutation? Because if you have control over the commutation you can just gradually (or outright) reduce the phase advance to zero where the motor locks up.

One thing to note though: You are basically stalling the motor when you applying current at low or zero RPM. So you want to shut off all the switches as soon as the RPM reaches zero (or even before then when the RPM is just low). Alternatively, and with more safety, you could add a single current sensor to monitor the collective current going through the motor driver in the motor controller to monitor things so that as you commutate with a phase advance approaching zero, you can reduce the PWM duty cycle to keep current under control. This would be somewhat of a constant current mode.

This would be most accurately done with current sensing on each of the three phase windings, but I think you could get away with just a single current sensor monitoring the collective current.

I have a motor at work I have to do this with when I shut it down...not really a BLDC but similar enough I think. When I do this the motor sounds like it suddenly encounters a high mechanical resistance or viscous fluid and very quickly, but smoothly, comes to a halt. The other two ways I shut it down are letting it freewheel which sometimes takes too long or outright setting the phase advance to zero and causing it to instantly lock up (really hard on the motor and electronics and produces a huge flyback spike that shuts down the power supply).



Was part of my original answer but no longer relevant after I talked things over with myself and realized that if you were not driving the motor backwards then it is not nearly as risky so you don't need phase current sensors to monitor things But I'm leaving this in because it may be informative to the OP since he is apparently not familiar with hardware:

I would add current sensing to each phase and use active-braking (reverse the engines). This seems like the lowest amount of extra redundant hardware. The current sensing can be used to monitor things during braking (as well as during operation). But mainly it would allow you to monitor the active braking to not overstress things.

When I say add current sensors to each phase, I mean make it so you can individually sense the current on all three motor wires (as opposed to the collective current flowing into the through the motor driver and into the motor).

Easiest (but perhaps not the cheapest way) is to use hall-effect current sensors. The other way is to use shunt resistances which are accurate milliOhm level resistors that sit in series with each wire and you measure the voltage drop across it to determine the current flowing through it. You will need differential amplifier (or better, a purpose built shunt resistor diff amp IC) to convert the differential voltage to a ground-referenced voltage that you can easily measure with your ADC).