I used a "factory reset button" a few days ago, and wondered how they make it activate only after a few seconds. Are there standard solutions to that? My best idea was to use something analogous to an RL low pass filter that takes a while to set output to logic high.
Once I did something sort of like this. It was more complicated because the button was actually the power button and had to work normally for short presses. The idea was to reset the microprocessor on a long press. We didn't want to rely on the microprocessor to implement it because the idea was to be able to recover if the microprocessor got hung up. It seemed to work well enough in testing. It went into production. But I don't have any way of knowing whether customers ever had to use the long press.
As JRE stated in their answer, MCUs or microprocessors manage the resetting process generally.
If your system has nothing for digital control then you can still go for analog implementations. The following is the one I designed in the past, for a remote reset signal:
RF-CF pair is a de-bounce and spike filter. RT-CT pair determines the timing. And there's a safe-discharge network (formed by the BJT-NMOS pair) to discharge the timing cap trough RD when the button is released, just to prepare the system for the next RESET quickly.
Use a Smart Reset generator such as the ST Micro SR1 family. That will generate a reset pulse after you hold the button down for a long (settable) time while the button acts normally for UI functions. https://www.st.com/en/reset-and-supervisor-ics/sr1.html
Trust me, if you only have a software-implemented reset, you will be kicking yourselves during development at least as you have to open up the device and disconnect the battery to force a reset.