I wonder if we can hack the thread pool (search in that case) and only allow threads in that pool to call start at all. Or even further we can simply start and stop in the executor and only if we have a timeout configured we just call a method `setThreadTimeout` ?