Using CHECKPOINT vs GO
The most important thing when doing a large update or delete is to avoid the transaction log growing out of control. To allow log reuse &amp; avoid bloating to Tlog (Transaction log truncation)


In full recovery mode - take log backups
In Simple recovery mode - do checkpoints.


Since you are using Full recovery, your delete logic should be 

begin
 begin tran
   -- delete using batches 
   -- carefully choose batch size. SQL Server will do a lock escalation 
   -- for batch greater than 5000. (https://technet.microsoft.com/en-us/library/ms184286(v=sql.105).aspx)
 commit tran / rollback tran 
  -- since you are using Full recovery, take log backups
  -- with CHECKPOINT SQL Server still cannot reuse those portions of the log until you perform a log backup.
end


I use waitfor delay to esp. avoid prolonged blocking.

Refer to this gold mine blog post - Break large delete operations into chunks by Aaron Bertrand. Also, Take Care When Scripting Batches is very useful blog post.