How would you feel about making these instance variables (and keyword arguments to `__init__`) instead of parameters to `acquire`?  It'll allow you to simplify with_lock if you don't need to pass some of the keywords to `acquire`?