A lot of your woes would be solved by in memory caching.
If you have tables with TEXT fields, MySQL up to and including 5.5 will perform certain joins with on-disk tables no matter what you tell it to do and will ignore indexes you create to prevent that on-disk stupidity. This behaviour is independent of engine.
Being I/O choked on Linode is why I moved to DigitalOcean.
Otherwise, heartily agreed.
If you don't mind my asking, is there some key feature of Wordpress or its plugins that holds you to it? I'm always interested to hear why people stick with it.