engine: init expire chan only if TTL > 0

Fix #933
All we're trying to do is optimistically wait for whatever node might already hold the lease to finish up before we start making decisions. If there is no time left, then we don't have to set up the expiration channel and wait. Yes, there may be another engine that acquires the lease between now and when this engine tries to acquire it, but that's not a big deal.