Create Database and LCK_M_S
If you see below segment of the code

CREATE DATABASE [TestTom]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'TestTom', FILENAME = N'G:\MSSQL11.MSSQLSERVER\MSSQL\DATA\TestTom.mdf' , SIZE = 1048576KB , FILEGROWTH = 1048576KB )
 LOG ON 
( NAME = N'TestTom_log', FILENAME = N'F:\MSSQL11.MSSQLSERVER\MSSQL\Data\TestTom_log.ldf' , SIZE = 1048576KB , FILEGROWTH = 1048576KB )
GO


The size which you are pre-allocating is 1048576KB which is approx 1G.

The same is with Log file 1048576KB which is 1G.

Can you alter your script and put it to few MB's and see if you again get the locking. You can later run alter database modify file script to increase size. This is something I have witnessed to telling you. This is not a definitive answer but I am sure it will reduce the creation time which exactly is your problem. 

Did you also noted if any process was blocking the table creation script. 

Plus first run create database script and then the alter database commands.