ConcurrentRun run your function concurrently
ConcurrentRun give up when ctx.Done() if ctx != nil
timeout set timeout for run given task
return done or timeout flags according to given tasks
Task run by ConcurrentRun
ConcurrentRun will return immediately after all unignorable tasks done
CancelFun will be invoked when this task overtime. It's always context's cancel function.