I bought a pre-paid zte blade (http://www.okmobile.ch/de/mobile/index.php?id=smartphone) for 90 euros the other day to use as a dev phone. It has a 800x480 TFT touchscreen, 512mb ram, hardware accelerated graphics, GPS, 3G internet, WiFi, bluetooth, and accelerometers/magnetometers. It's pretty open as it runs Froyo 2.2, jailbreak/root is easy, kernel source is available.
Sure, it doesn't have any buttons, you can use a bluetooth joystick/keyboard (i.e. http://www.talkandroid.com/guides/using-a-bluetooth-gamepad-...) if you really want to.