title: What's the easiest way to wait for Mono completion in the background?
body: <p>We are given a Mono, that's handling some action(say a database update), and returns a value.<br />
  We want to add that Mono(transformed) to a special list that contains actions to be completed for example during shutdown.<br />
  That mono may be eagerly subscribed after adding to the list, to start processing now, or .subscribe() might not be called meaning it will be only subscribed during shutdown.</p>
  <p>During shutdown we can iterate on the list in the following way:</p>
  <pre class="lang-java prettyprint-override"><code>for (Mono mono : specialList) {
    Object value = mono.block(); // (do something with value)
  }
  </code></pre>
  <p>How to transform the original Mono such that when shutdown code executes, and Mono was previously subscribed(), the action will not be triggered again but instead it will either wait for it to complete or replay it's stored return value?</p>