Middlegames are also extremely complex, so in general I don’t think anybody has a great handle on all of the things that are happening on the board at once. Probably the best we can do is try to find safe moves that put pressure on the opponent. To be clear, you didn’t lose this game because of one bad move, though. You lost this one because your minor pieces were never putting much pressure on black. You didn’t play Ng4+ when you had the chance, your LSB was just stuck for a lot of the game, white’s rooks got active and started pestering you everywhere.
There’s a few ways you can improve. If you specifically want to improve on time control, you could look through portions of a game like moves 23-29, see why you spent so much time on these moves, and then maybe do some training to find these moves faster. Maybe that’s just finding out how to identify and be satisfied with safe moves that put pressure on the opponent.
If you’re trying to hang your pieces less, something I’ve been finding useful is going through a grandmaster game, playing from the perspective of the player who wins, and asking myself before playing every move, “what would I play here, and am I hanging any pieces?” It’s easier to do this kind of practice when you have unlimited time to think for each move, and it’s less stressful because you won’t actually lose games if you play the bad moves only during practice.
If it’s a mindset thing, if you notice that you start to play carelessly once you’re ahead, I think the remedy is just to understand how advantages are usually converted. They usually take a long time, and often the side with the advantage is looking for ways to limit counterplay, find the most useful thing the opponent can do and make sure the opponent can’t do that anymore.
Just a few suggestions, hope they help.
How am I supposed to improve knowing this? I play a lot of tactics and try to improve my positional play but I feel like the middle game is so complex with so many directions that unlike openings I don't have a good grip on it no matter how many puzzles I do. Here is an example from my last game. Also note that I always have a time disadvantage because I think through early in the game giving me the advantage, but that also gives me time trouble after which I am forced to think quickly and throw.