winser, сам механизм дополнительных задержек не даст, а вот внутри функции может быть просадка производительности по каким-то причинам
конструкция интересная не знал про такое
называется рекурсия
советую освоить дебагер, код можно запустить в режиме отладки и выполнять по шагам, так можно найти "узкое место" и понять в каком порядке и с какими данными что-то выполняется
winser, return myQuery может вернуть myQuery который может вернуть myQuery который вернет done, таким образом done венется в предыдущую myQuery и это будет ответ для предыдущего myQuery, который вернет done изначальному myQuery и в итоге вернется done.
посмотрите какой на самом деле value