Oggi mi è stato fatto notare che l'esecuzione di una query in maniera asincrona in una pagina ASP.NET, ritornava un recordo in meno di quanti erano stati richiesti effettivamente nella query.
In pratica, anche il mio stesso esempio, a volte, aveva un comportamento del genere. Questo però solo nell'esecuzione di una query ad un database, e non nella chiamata asincrona ad un web service.
Per risolvere la cosa, basta utilizzare la keyword WAITFOR DELAY, propria del T-SQL, che blocca per i secondi/minuti/ore che decidiamo l'esecuzione della query.
Ecco una query d'esempio:

"WAITFOR DELAY '0:0:15'; SELECT ... bla bla bla"