Нельзя блокировать действия пользователя!
Пример из моей жизни - я вечером работаю перед сном. После работы нажал кнопку на корпусе ПК. Он у меня СРАЗУ переходит в спящий режим. И это МОЁ желание как пользователя. Мне не надо чтобы эта железка не исполняла мои требования. Если комп не выклюился - я принудительнь завершу блокирующую программу в любом случае. А если она при этом потеряет мои данные - я просто перестану пользоваться этой программой.
1. Программа не должна допускать потери данных в любом случае (свет моргнул/кошка провод съела/убощица шваброй по компу ударила.... )
2. ПК должен быть отзывчивым в первую очередь на мои действия
Всё это относится именно к рабочей станции - на серверах своя логика. Там вообще процесс выключения - это не штатная ситуации и аларм полный....