guarantee that there's never more than 1 'open' userlog of a single type.  Because if that race condition happens, it's unrecoverable, due to use of get_object_or_None.