1. fetch и есть ajax
2.  > Как навесить событие на форму, которая загружается с сервера ассинхронно. - нужно вешать прослушку событий на элемент, в который эта форма прилетает, т.е. 
<div id="with-form">
    <form .../>
</div>
const form = document.getElementById('with-form');
form.addEventListener(...)
(Можешь погуглить в сторону "делегирование событий")
Это для решения которое ты хочешь. 
А вообще такое поведение делается на клиентском javascript - делаешь форму с display:none, position: absolute
и по клику на, в твоем случае, "войти" - меняешь свойство display none -> block