Matt, Jay: Can you say a word about what specific events, or lack of events, Indigo "sees" that causes a "AD2USB Alarm Interface Error plugin runConcurrentThread function returned or failed; will attempt again in 10 seconds" error to be thrown.
I believe uncaught exceptions will cause that error to be shown - so something in your runConcurrentThread method is throwing an exception and you aren't catching it.