Update unittests, add meaningful status tests.

This also tweaks the semantics of status updates, since the tests found
they weren't working exactly as expected.