The code that is putting the the time zone at the end of the time is the T in here:
<?php echo date("g:i A T", $now); ?>
You can remove it to get rid of that part of the date and time. As for the error that would be returned this is not something to worry about. You are setting the local server side, this has nothing to do with the clients time or zone. It will show the time like you see regardless of where the user is.
As for the rendering of the background color I have found that Outlook 07 has some problems with this type of css. I read that it the background color is applied to more than one element that is nested in the page then it will not show. I tested this by removing the other background colors specified and got the background color to show that way, but it was not for the area I thought it would be. It seems that Outlook 07 has some limitations when it comes to properly rendering css in html emails. Here is a link to an article that I found on this topic:
the-scoop-on-outlook-2007/