Attempt to handle cancelled launches
Run ExternalRunner on pooled threads to try for better perf

It still sometimes times out on this computer, even though it
works consistently on my MacBook. Still not sure why it would
even be as slow as it is when 480ms is good enough for eclim.
Also, setting the cursor to scroll the window doesn't seem to
work anymore. No idea why.