Is it possible to write a wait free leader election algorithm?
I believe that leader election derives from consensus algorithm, not other way around.  When electing leader you need consensus about who was chosen.

I'm not sure what you understand by "wait free". All communication in distributed system is asynchronous, and you always need to wait for reply.

You could start all nodes with ordered list of all possible leaders. When leader goes down all nodes could just pick next one from the list.  But again, to notice that leader goes down you need to ping it, and wait for response.  And probably coordinate (create consensus) that we changed a leader (if not, you will have a problem when encountering partitions).

So, last option is to choose one leader at start (trough config) and not allow any change.  But this does not fulfills requirements of most distributed system or leader election problem.