<p>What is the best way to write data to the text console at arbitrary locations on the screen and with custom fore/background colors?</p>

Console.SetCursorPosition, Console.BackgroundColor, Console.ForegroundColor, and Console.ResetColor.
Note these were added to the .NET Framework in version 2.0. Prior to that you would have needed PInvoke.