Change A Database Name When Restoring
Only if you have applications, T-SQL code, synonyms etc. that reference this database by name. If this is not a production environment, you could test this on the existing copy using ALTER DATABASE ... MODIFY NAME and seeing what breaks, or just taking the current copy of the database OFFLINE to see what kind of things might be depending on it. If this is production, you better take the old copy of the database offline as soon as you restore the copy as a new name, because your apps etc. could still be connecting to the old database and you wouldn't know.
Close, but I think that the second MOVE command should be MOVE N'OldDatabaseName_log'. Of course this will leave the files named with the old database name; you can do more cleanup to modify those files individually if you want it to be squeaky clean (I think this can be overkill except in cases where I have built automation around the assumption that files are named for their container).
NOUNLOAD is not really relevant today, and you can probably leave it out of all RESTORE statements going forward. From the old SQL Server 2000 documentation (the last time it appeared fully documented, IIRC):



  Specifies that the tape is not unloaded automatically from the tape drive after a RESTORE. NOUNLOAD remains set until UNLOAD is specified. This option is used only for tape devices. If a non-tape device is being used for RESTORE, this option is ignored.