Кстати, опрос общественного мнения: как вы считаете, передача в асинк-коллбек сначала результата, а потом ошибки - это некий написанный стандарт или нет?
Имхо это логично. Для перла у которого есть undef, многим достаточно просто
return unless [defined] $result;
В начале функции и второй параметр вообще не вынимать, если не интересует почему ошибка.
Для c/с++ например такое уже не всегда прокатывает, поскольку нет undef. Но из того что я видел там тоже еррор в конце