grabTask now calls callback with empty argument if task was not available for execution. needs testing