You can set the Executor for the TimeLimiter that would allow to set maximum thread amout for the whole application which is optimal for embedded devices. See issue #11
There is no more PausableThreadExecutor necessary, cause the operation can be canceled inside the Operation instead outside of it. This will make several classes unnecessary.
The TimeLimiter can be injected, which allows to set the ExecutorService.
This has several advantages:
<3 Google Guava ;)