title: How to let withTimeoutOrNull return null but finish code in the block
body: <p>I need my code to run a block and return value after 1 second in case timeout but let it finish the job.
  I managed to implement something that works but IDE suggest replacing <code>async</code> with <code>withContext(DefaultDispatcher)</code> but it's not working the same. </p>
  
  <p>So my question is how to make it work without IDE warnings. I am new to Kotlin Coroutines so I might be missing something here.</p>
  
  <pre><code>@Test
  fun how_timeout_with_null_works() = runBlocking&lt;Unit&gt; {
      val time = measureTimeMillis {
          println("Start test")
          val result = withTimeoutOrNull(1, TimeUnit.SECONDS) {
              async { doSomeHardWork() }.await()
          }
          println("End test $result")
      }
      println("Time $time")
      delay(3000)
  }
  
  private suspend fun doSomeHardWork(): String {
      println("start hard work")
      Thread.sleep(2000)
      print("end hard work")
      return "[hard work done]"
  }
  </code></pre>