code: public <T extends Runnable> T executeAsyncTimed(T runnable, long inMs) {
  		final Runnable theRunnable = runnable;
  
  		// This implementation is not really suitable for now as the timer uses its own thread
  		// The TaskQueue itself should be able in the future to handle this without using a new thread
  		Timer timer = new Timer();
  		timer.schedule(new TimerTask() {
  
  			@Override
  			public void run() {
  				TaskQueue.this.executeAsync(theRunnable);
  			}
  		}, inMs);
  
  		return runnable;
  	}
docs: Add a Task to the queue. The Task will be executed after "inMs" milliseconds.
  @param the runnable to be executed
  @param inMs The time after which the task should be processed
  @return the runnable, as a convenience method