Еще раз повторяю - вместо вывешивания или перезагрузки системы при помощи ассерта можно вырулить прибор в нормальное состояние с учетом контекста. Причем функцию невозбранно зазвать void assert_or_wait_mode(int), в десятке вариантов, повторюсь, по контексту.