Switch from engine "lock" to "leased" engine leader role

Fix #639
I meant to implement a Purge method for the Engine where Release would be called, but I made soup and walked away.