try/except (и finally) не подойдет, так как ошибка возникает в блоке except. Нужно чтобы файл (или код) полностью перезапускался после ошибки. Я слышал что-то о systemd и restart: on-failure в нем, но так и не понял как этой штуковиной пользоваться.
Судя по systemd вы в линуксе? Значит у вас os.system(command) вернёт exit code, который при нормальном завершении равен нулю.
import os
while True:
exit_code = os.system("python3 script.py") # Возможно тут следует написать полные пути
if exit_code == 0:
print("success!")
break
print(f"exit_code is {exit_code}, will retry")
А systemd это уже ближе к администрированию целой системы. Это фоновые сервисы и задачи, и т. п.