Why can wordpress not find the actions I add in my constructor?

Your constructor runs on the request from which you make the AJAX request, but not within the request that processes that AJAX request. The request that initially loads the page, and the AJAX request are two separate requests with no preservation of state between the two. This is not unique to WordPress, this is how AJAX typically works. When the AJAX request happens, your template file isn’t loaded, so the class is never instantiated. In this case, you have to move things to functions.php, as that’s the only theme file loaded in an AJAX request.