I'm not sure if this is the most realistic example since you're implicitly relying on this being at the top level and there being a global await at the end of the block. Surely any real program will have all the work done inside a single top-level event loop.
require 'async'
Async do
results = []
Async do
sleep 1
results << "Hello"
end
puts results # => []
end