A MDB is a stateless instance, so I think it depends to the implementation how such stateful thing like yours will work.
A timer in this case will call a instance of your MDB without respect the concrete instance, one will taken from the pool and triggered.
If you use a local collection, it is not deterministic how your threshold is reached.
A static collection might be better.
But I think it will be very dangerous, so what about if the server is server is shutdowned? Your pending messages are lost!
And this will only one of the suspect examples.