@cfry Took care of the dollar args for you and fixed a small oversight in the previous which made it not work for commands with more than one argument. Also added a simple trace which prints stack size, command, and the top 10 elements on the stack, should help you in figuring what is going on. The [s $0fpush] is the same as $0push, nothing fancy there, it was just a simple way to make the trace slightly easier to read.
trackthing.pd
Edit: fixed a bug.
I think list-abs could use a rewrite using the 'new' [list] objects.
I started in on that but realized that the overall design of list-abs is an issue, often what takes 5 list-abs abstractions can be done with a single [list store] and some glue, some can be replaced with [list store] and a message and have no need to be abstracted away. I think a good [list store] tutorial and a much smaller (more thought out and planed) replacement for list-abs would be a better idea. List-abs is fine as it is for keeping old patches alive.