I don't know what you want to do by putting the thread to sleep.
If you wanted to disable the button for 2000 millisecond, it is an incorrect approach.
If you want just wait 2000 millisecond and then disable the button, it works.
Here is the code:
<button id="btnSend" runat="server" alt="" causesvalidation="false">
<span><b class="va">Send Message</b></span>
</button>
protected void Page_Load(object sender, EventArgs e)
{
this.btnSend.ServerClick += new EventHandler(btnSend_ServerClick);
}
void btnSend_ServerClick(object sender, EventArgs e)
{
btnSend.Disabled = true;
System.Threading.Thread.Sleep(2000);
}