Had the same issue with restic taking up a lock in the event of an unsuccessful operation. I have a very simple workaround for it.
ExecStartPre=/usr/bin/restic unlock
ExecStart=/usr/bin/restic backup
ExecStartPre=/usr/bin/restic unlock
ExecStart=/usr/bin/restic backup
You just have to make sure that the type of Service used is correct, so that Systemd can track whether Restic has actually stopped running.