Support older versions of Lwt

- Passing "" as the exec path to search $PATH doesn't work.
- Lwt.async doesn't exist.
Allow machine=null as a valid JSON response