Safer way to wait amount of time
I think WinJS already provides this:

WinJS.Promise.timeout(timeout) creates a promise that is completed asynchronously after the specified timeout, essentially wrapping a call to setTimeout within a promise. 

See also  http://msdn.microsoft.com/en-us/library/windows/apps/br229729.aspx

If you wish to continue with your own function, then you should review how promises ought to work, I don't think you are using the promises object the way it was intended.