If the task is already running, it should make a best effort to abort execution as soon as possible. This method should be implemented in such a way that it returns immediately and does not block the caller.