Adding support for LEFT JOINs and IS NULL conditions to Drupal's EntityFieldQuery has been asked for in d.o. issue queues and discussed over and over again. Although in Drupal 8 EntityFieldQuery has been rewritten, and now supports exists() and notExists() conditions, implementing it in Drupal 7 is still slightly hack-ish. Doing it in dynamic, parametrisable way however seems to be something new entirely.
ArticleEntityFieldQuery, LEFT JOINs and IS NULL conditions 23 Feb '15
ArticleHow to change the machine name of a content field in Drupal 7 17 Jun '11
Once a new content field is created, there is no way to change its machine name from administration area. No worries though, this still could be done quite easily by only few updates directly to the database.