Перезагружать процесс, если тот насилует процессор?
1. По хорошему надо отпрофилировать процесс, чтобы понять где затык и убрать САМУ причину таких граблей.
2. Настроить квоты на процесс и/или виртуалку, чтобы ему (процессу/виртуалке) не отдавалось 100% процессора/памяти/iops/iowait'а

Навскидку всё.
Конструкции вида «if cpu > 60% for 2 cycles then restart» вполне себе рабочие и грешить на monit мне не стоило. Дело оказалось в том, что значение CPU внутри контейнера monit берет от общего и они совсем не похожи на то, что мы видим в top/htop.

Решение — поймать момент нестабильного поведения процесса и снять показания с помощью команды monit status.