Sounds like good old Heisenberg 🙂 But I think the log values you are witnessing are because they are evaluated during the click event. Without having the full source code, I assume when the click event fires, the view is still determining what feature to show in the popup or maybe still fetching title and other attributes from the server.
What works better is watching a specific property for changes:
view.popup.watch("title", () => {
console.log(view.popup.title);
});
Or using the developer console to inspect the values directly when you see the popup is fully loaded. If "view" is not a global variable, this is one way to access it through the developer console (assuming you consume the API as an AMD module):
view = require("esri/views/View").views.getItemAt(0);
console.log(view.popup.title);