select_for_update на SQLite молча ничего не блокирует, InMemory-провайдер EF не знает транзакций, и зелёные тесты не гарантируют, что деньги не спишутся дважды. Как тестировать гонки на настоящей СУБД.