Cost:
Buying the plan from TPG required waiting for the SIM to arrive, then going online to activate it which took another day, then realizing that data wasn't enabled by default, going online to enable it and waiting another day, and having to enter some specific settings to get the phone to use TPG's GPRS data.
This was a hassle, however the support was good, and it only needs to be done once.
There were also difficulties getting the phone to connect to our home wireless network. When set to use WPA2 (AES) the phone would occasionally connect, but not always. Once the wireless router was changed to allow WPA-PSK (TKIP) + WPA2-PSK (AES) the phone connected without difficulty.
The phone can connect to Outlook mail/calendars as well as Google mail/calendars and Windows Live mail/calendars (plus custom mail server settings), and also has native Facebook support built in, which is good if it matches the providers you use.
The volume/camera/unlock/back/start/search buttons are in the right place, the phone isn't too heavy, and the battery life seems good so far (no need to recharge yet after 2 days). The screen is nice and bright, and the black background/white foreground looks nice and improves visibility.
The headphones provided aren't bad, with the soft earbuds rather than hard ones/sponge ones, and it has a mic built into it for use as a phone (which works well). There is a small sensor at the top which detects when you put the phone to your head and disables user input.
I have heard that the bluetooth connectivity is poor, and that it can only connect to audio devices and not transfer files, but that this is something done by Windows Phone 7 by design. I'm not sure since I don't use bluetooth.
The 16GB of space may be restrictive to some, and there is no slot for an SD card, so if lots of data needs to go on the phone it may not be large enough.
Trying to run your own code on your phone is ridiculously difficult. This has its pros and cons; if you don't want to run your own code it means you're only exposed to developers who have gone through many hoops to develop for your phone, but if you do want to run your own code (whether to sell apps or just to write some stuff for your own use) it is very difficult.
To start you need the Zune software installed, plus the Windows Phone developer tools. You need to register a Windows Live account, register that account to an Xbox Live account, and register that account to an apphub/MSDN create account. Once you've created the account you'll need to pay $99(/year) to complete the registration, unless you're a student (in which case you'll need to register your Windows Live account to Microsoft Dreamspark).
Then hopefully you'll get a message from GeoTrust asking you to send them a copy of your drivers license plus a letter (if not you'll need to pester them and Microsoft and/or submit a dummy app to kick-start the process). Once you've been validated by GeoTrust you need to fill out a US IRS form and send a hard copy of it to Microsoft in Redmond, Washington (I am not kidding).
Once you've done all that you can finally run code on your phone, and it's just like developing a WPF app or an XNA/Xbox game; very easy, excellent tools, good language, well thought-out APIs, etc. It's just getting started that sucks.
Overall a decent phone, if you can see no reason above not to get this phone I would recommend it.