Currently, an async block can only capture 16 variables (tuple fields count as individual variables here). This is a limit imposed by the number of inputs we can have for a function.
Instead, we should bundle some inputs into structs if an async block is attempting to capture more than 16 variables.