Got it.  Also, it took me a while to figure we may occasionally have disconnects in logic.  So, in trying to understand my code, keep in mind that I have different take on how Brackets deals with LD.  

For OpenLiveBrowser, my logic is simply and roughly as follows:
> 1. Check if chrome is running in debug mode (port=9222)
> 2. if NO, open URL on a fresh instance of chrome running in debug + start listening to workspace notifications (1x only)
> 3. if YES, grab the running instance and open URL on a new tab**

This approach affords a bunch of desirable things (at least for me).  Among them:
1. Brackets is guaranteed to always find or create a running debuggable instance of chrome for LD purposes
2. The user never gets prompted to relaunch (a much faster and less obstrusive approach)
3. The user's chrome profile never used, touched nor required, so it can never be polluted or corrupted by Brackets

For CloseLiveBrowser:
> 1. Grab any live instance of chrome running in debug mode (port=9222)
> 2. If none found, report no error
> 3. If chrome.windows > 1, report no error
> 4. If chrome.windows == 1 and chrome.window.tabs > 0, report no error
> 5. If chrome.windows == 0, quit chrome 

**Since OSX let's you have a valid running instance of chrome with no windows open, sometimes a new window object needs to be created before opening a new tab.

I only did this because I wanted to completely separate my profile and current live sessions with chrome from whatever I was doing with Brackets LD at the time.  I can understand not everyone needs, wants or cares about this workflow, but it works for me in OSX.

I hope this helps.  Thanks for providing guidance and comments. :)