## Description
This PR adds a stress test in simtest to test shared object congestion
control. The test is a good catch for liveness issue related to shared
object congestion control.
After creating the test, I manually added some liveness bugs in the code
(e.g. do not remove deferred txn from root, which can cause checkpoint
stall), and the test was able to catch such bugs.
It also found an existing bug that when checking txn objects for
congestion, it doesn't check if the transaction contains shared object
or not.
## Test plan
The test created in this PR.
How did you test the new or updated feature?
---
## Release notes
Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.
For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.
- [ ] Protocol:
- [ ] Nodes (Validators and Full nodes):
- [ ] Indexer:
- [ ] JSON-RPC:
- [ ] GraphQL:
- [ ] CLI:
- [ ] Rust SDK: