Кириллица в заголовках канает как и ожидалось по урлам.
php: header('HTTP/1.0 200 '.urlencode('Получено'));
js: console.log(decodeURI(link.statusText));
Результат:
GET
http://тутсайт/ [HTTP/1.0 200 %D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%BE 15ms]
20:05:20.430 "Получено"
Интересно, а какова максимальная длина reason-phrase? Может и никакого джисона не надо - вали все в хедер и готово.