Spoke containers now wait until Hub is loaded via lockfile.
Better method for launching program groups and log tailing.

Instead of a complete guess with `sleep`, now we actually wait until the
supervisor PID file appears. This is a much faster and reliable method
and also does cleaner handing off of child processes as `exec
supervisor` takes over PID 1. The supervisor log used to be cluttered
with many starts, stops, and PID reaping since timing was chaotic.
Move ENV declaration to top.
Fix bug on error log tailing.