Certainly not perfect. I have a T-Mobile G2/Hero and although Android is great and the actual handset is a joy to hold and touch, the overall user experience is awful:
3G doesn't work. Full stop. If I have the phone set to use 3G then occasionally it grabs data via HSDPA but normally falls to 2G. If the phone is set to 3G then incoming calls don't get through - phone doesn't ring, caller doesn't get answer phone. Texts are delayed but up to an hour if 3G is on.
So I have to leave it in 2G to be able to make and receive calls.
WiFi disconnects itself for no reason whatsoever and doesn't automatically re-connect. I have to go into settings, select my network and re-connect manually (and yes, I have all the right sleep and connect settings enabled - it just doesn't work).
Standard contacts and calendar apps are appalling. Sync with Google works but Google online apps are worse than bad. HTC Sync is working now but appointments with NO REMINDER set in Outlook are syncing and gaining a reminder. Pain in the arse.
That's not a Hero problem but either an Android or HTC Sync issue, though.
Lastly, the phone will lock up once every couple of days and need a battery pull to re-liven. No telling when or why this will happen, just doesn't respond to anything and needs a pull. I've resorted to trying to minimise this by re-booting the phone every morning and lunch time.
I am hoping, really hoping, that the 2.1 update will address the actual usability of the device as a phone because I am *loving* Android apps, customisation and community and really don't want to go back to a Blackberry if I can help it.