not sure what the specific issue is; this works perfectly fine, whcih is just the scripting of what you said you did;
note i'm using EXECUTE AS to directly test the permissions.
CREATE LOGIN [devtest] WITH PASSWORD=N'NotTheRealPassword' , DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
GO
EXEC master..sp_addsrvrolemember @loginame = N'devtest', @rolename = N'dbcreator'
GO
EXECUTE AS LOGIN='devtest'
select suser_name() ;--Am i DevTest? yes I Am
CREATE DATABASE myTEST;
REVERT; --change back into superman
DROP DATABASE myTEST;
DROP LOGIN devtest;
Lowell