Currently we expect the caller to estimate gas after creating the metatx, but if they exceed maximum concurrency then estimate gas will fail as there'll be a nonce gap. We can get around this by reserving a "dummy nonce" that we never actually issue from the lib, so we know it wont get used, and use that to estimate gas. We then return the estimated gas along with the call data so that the caller doesnt have to estimate themselves.