[ENH] Use restore.lock to detect possible restore conflicts
- Unlock in case of error or success (allowing to execute again).
- If a lock is found the user is notified.
- If a lock is found but older than 30min, assumes it's stalled and continues with the current process.