O .NET Framework 4.5 tem um método ExecuteScalarAsync().
Veja aqui:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalarasync(v=vs.110).aspx
ExecuteScalarAsync() também tem uma sobrecarga com um parâmetro CancellationToken que pode ser usado para abandonar a operação antes que o tempo limite do comando termine.