Почтовые ящики (и подобные конструкции) используются в моделях программирования, в которых не используются блокировки, поскольку они изначально построены на асинхронной обработке.(Отсутствие общего изменяемого состояния является еще одним требованием этой модели.)
Модель Actor можно рассматривать как серию однопоточных мини-приложений, которые обмениваются данными, отправляя и получая данные друг от друга.Каждое мини-приложение будет одновременно запускаться только одним потоком.Это, в сочетании с отсутствием общего состояния, делает ненужными блокировки.
Процедурные модели (и большая часть кода ОО по своей сути процедурные) используют параллелизм на уровне потоков и синхронные вызовы других объектов.Модель Actor полностью изменяет ситуацию - вызовы (сообщения) между объектами асинхронны, но каждый объект полностью синхронен.
Я не знаю достаточно F #, чтобы откровенно проанализировать ваш код.Похоже, вы пытаетесь прикрепить оболочку синхронного вида к вашему почтовому ящику, и мне интересно, действительно ли это лучше всего делать (вместо полного охвата модели почтового ящика).В вашей реализации кажется, что вы используете его в качестве замены для блокировки.