Currently if a transaction reverts geth reports this error:

This makes it impossible to write tests that assert about revert reasons and is overall a big devex pain.
After talking with @smartcontracts, he said that updating Geth to use it's newer revert handling would fix this issue.
Here's what that updated error handling looks like:
https://github.com/ethereum/go-ethereum/blob/37b5595456e7049e3ed487c41564281de52e00ab/internal/ethapi/api.go#L1048-L1063
Here's the current error handling:
https://github.com/ethereum-optimism/go-ethereum/blob/beed9003d2f191befa91dde2a50f421c986bdc21/internal/ethapi/api.go#L1087-L1091