Secondly, how could you tell that the checkpoint process completed about 11 seconds after SQL Backup's default timeout of 30 seconds?
When you start a backup/restore in SQL Backup, SQL Backup sends a initialization request to SQL Server. It then waits 30 seconds for SQL Server to respond. If a response is received, SQL Backup then proceeds with the backup/restore, as SQL Server is available to provide/receive the backup data. If by 30 seconds no response is received, SQL Backup aborts the request.
Looking at your log, the restore started at 3:21:28 AM. After disconnecting all users and setting the database offline, SQL Backup then sent an initialization request to SQL Server at 3:21:36 AM. 30 seconds later, at 3:22:06 AM, SQL Backup still had not received any response from SQL Server, and aborted the restore process. At 3:22:17 AM, SQL Server wanted to send the initialization response, but could not find the SQL Backup process that sent it (because it had already aborted the process). SQL Server then raised 'SQL error 3013: RESTORE DATABASE is terminating abnormally.'.
Looking at the sp_who output generated by SQL Backup at 3:22:06 AM, you can see that the SQL Backup process (SPID 62) was blocked by SPID 10 at that moment.
Why doesn't SQL Backup wait indefinitely? That's because there can be many reasons why SQL Backup is blocking the backup/restore process, and the block might never end, causing SQL Backup to hang indefinitely.