Unfortunately, you do need _some_ sort of TTL because there is no way for the lockable server to know when a remote process has simply died.
However, TTLs can be set to be arbitrarily long (e.g. multiple days), which means, in practice, you can avoid losing locks due to networking issues.