You could TAS this now! (to a degree). I'll explain. Someone made this tool called Source Pause Tool. It allows the game to load a save, and pause it at the very first tick of the game. Thus, this solved the issues with using singlestep 1 back when I first tested the possibility of a TAS. Unfortunately, you'd still have some issues, as Yalter and Matmo explain here (they are talking about HL2 TASing):
[8:29:02 AM] Matmo: To be honest, our movement with timescale is probably as precise as it would be with single step.
[8:29:10 AM] Ivan "YaLTeR" Molodetskikh: First of all, no optimal movement method. No autostrafing for straight movement and no max angle strafing for turns.
[8:29:47 AM] Ivan "YaLTeR" Molodetskikh: Secondly, no consistency. Have fun doing that grenade jump or NPC teleport over and over because those are random and this is not hooked in any way.
So, like, for example. In a TAS of a game with a joystick, you can position the exact angle where you want to turn in the next frame. For a Portal TAS, you'd have to move your mouse the same distance every time to do the same thing. Though, I haven't looking into mouse simulator applications. You might be able to make precise movements with some kind of tool to 'move the mouse'. For example, writing an autohotkey script that moves it specifically each time.
Overall, I think it would be plausible to try to make a TAS (with frame advance) of a Source engine game like Portal, but it is more realistic to do the type of TSA (Timescale Assisted) run, like what we are currently working on for HL2.
Link to the tool: