The success returned from the mail() function just means that the message was successfully sent to the email program on your host, not that it was sent successfully to your recipient.
You're sending to a Hotmail account. Hotmail is notorious for filtering out what it thinks is spam and sometimes dropping the message into the bit bucket without telling either the sender or intended reciever. It usually does this when the domain name in the "Return-path:" header doesn't match the domain name in the "From:" header. The "Return-Path:" header can be set to the correct domain by using the fifth parameter to the mail() function. Assuming the domain you are sending from is "diceconsulting.com", here's how to use it:
$to = 'email@example.com';
$subj = 'hi';
$body = 'hello';
$headers = "firstname.lastname@example.org\n";
$p5 = '-f email@example.com';
print "ERROR - not sent";
You'll notice that I put all the parameters to the mail() function in variables -- just my preference. And I put all domain names in lowercase.