Thanks for the in-depth answer! Yeah it somehow doesn't add up. But good to know that the cost is miniscule. Your use case sounds pretty much like ours.
Do you happen to know a pattern for DOs to handle a big number of users - think global chat or feed.
I was thinking of using a DO id stored in KV that's incremented as soon as a worker receives an overloaded error so every new requests uses the next DO instance. And another KV entry that stores all active DO ids for broadcasting to all of them.