How about using a sort of sample compression?
Instead of storing the state at a fixed interval have a 24bit 10, 50 or 100Hz tick counter running. Whenever something changes state you store the counter value and the state.

If the state is 16 bits each record will be 5 bytes total.
Even at 100Hz resolution the 24bit tick counter allows for close to two days of recording before overflowing.

Nice proto build!

/Henrik.