Sqlite так устроена - читающих соединений может быть много, но пишущее - только одно в каждый момент времени. Причем по умолчанию пишущее соединение заблокирует и всех читателей.
Чтобы читатели не блокировались, нужно
включить WAL
db.execute("PRAGMA journal_mode=WAL")
При этом пишущее соединение по-прежнему будет в каждый момент одно. Если это вас не устраивает, вы выбрали неправильный инструмент, и надо смотреть в сторону нормальных серверных СУБД (mysql, postgresql).
Теоретически могло бы помочь выставление большего таймаута (но я не вижу, как его вообще менять в aiosqlite) или отлов ошибки "database is locked" и повторные попытки.