Since the GPIO are somewhat accessible, I believe a TWI (I2C) solution could be built instead of using up the only USB port for the ADC. It would also be cheaper.

For the second part (software), adding a "driver" to the NUT stuff (Network UPS Tools) to support something like this would be pretty easy. After all, you are describing a UPS with a very small battery so it fits perfectly into the paradigm.
My real-life solution has the plug, a powered USB hub, a GigE switch and another server powered by a single UPS. The UPS provides feedback to the NUT enabled plug through a serial to USB converter. The plug sends alerts to the other server (also running a NUT client) when the power goes low and both shut down.