As Tom posted, there are multiple approaches to this problem. Put simply, for a full up IMU I can't see doing it without a robust filter, whether it's an EKF, H infinity, or other... . Sensor cost, availability, and selection is where I started. Gyros and accelerometers are a must have. Tom has incorporated everything necessary on the gluonpilot board - with the addition of uart2 gps and an I2C three axis magnetometer the development potential is endless. The math does get complex, I've revisited concepts that I haven't even considered since I finished my aerospace engineering degree almost 30 years ago. There has been a lot of technical change since then. I've posted several other comments about the work I'm doing in this forum.
There are multiple papers and thesis available online that provide summary outlines of academic work in this area but few examples of actual code. For me it has been continuous improvement with each filter or method I write, but I don't know if I'll ever find the best combination. There are only a handful of successful homebrew IMUs out there. I have elected to forgo the modeling of the vehicle and, as you suggested, focused on the data and bandwidth that is available from the sensors.
Right now my best concept is written to mitigate the reduction of huge matrices, the largest is a 6x6, but there are a lot of them. I'm using a quaternion least squares estimator to create a single quaternion attitude estimate from accelerometers, magnetometers, and soon gps data. The vehicle attitude is propegated with the higher bandwidth gyro measurements, and fused with the estimator quaternion in an EKF (all in the quaternion domain). Results are very good on the bench but I haven't integrated the GPS yet.
Debugging is very time consuming. In a few weeks I may be to a point where I will test some accelerations by driving it around in a car and eventually flight testing.