I wished many times that above worked, but it doesn't: 'finish'
appears to interrupt flow of script, and subsequent commands are
never executed:
[...]
Is this a bug?
It actually isn't. The manual tries to explain why:
Any other commands in the command list, after a command that resumes
execution, are ignored. This is because any time you resume execution
(even with a simple next or step), you may encounter another
breakpoint--which could have its own command list, leading to
ambiguities about which list to execute.
Most of the users at AdaCore view this as a limitation, but I haven't
really had the energy to look at improving this.