The account-owning thread has to accept messages for every atomic action you need it to do.
There are lots of standard shared queues you can pick from that have been fully regression tested. That's almost always better than mixing concurrency in with your business logic.