Context
Found while reviewing #35018, which led to a few additional benchmark fixes.
Problem
MempoolCheckEphemeralSpends populated every child input by writing to vin[0].
That left only one child input pointing at the parent transaction, while the remaining inputs kept default prevouts.
WalletBalanceMine duplicated WalletBalanceClean exactly.
The same review also showed that nanobench setup() can be misused as though it runs once per timed call.
It actually runs once per epoch, so using it with multiple epoch iterations can silently leave later iterations with different preconditions.
Fix
Write each ephemeral-spend prevout to the matching child input and assert that the last input spends the last parent output.
Remove the duplicate wallet balance benchmark registration.
Add a nanobench assertion that setup() is only used with epochIterations(1).
[!NOTE] This PR included a few benchmark adjustments originally which made the tests unstable and were reverted.