It looks like the basic restore operation is set up fine. It's mainly a question of getting the connections clear before you restrict access to the database. You're going to have to wait for every transaction to roll back during that process. However, I usually don't use single user because it's still possible for another connection to get in front of you. I usually go for restricted because it only lets DBO & sa connections in.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning