Synchronous in-memory message bus implementation in C#.NET