OK, so, not surprisingly, Espressif have released an update to SDK 5.5. Its 5.5.1 and is described as 'Stable' whereas 5.5 is a beta.
I have installed and using pretty much the same model as you worked out, tested the blink.pas mentioned above. All good except the linker is called without an explicate path to where memory.ld and sections.ld are. Its easy enough to add that path with a -L instruction to linker but I cannot see why its necessary, or, more accurately, I cannot see how the 5.5 version did not need it.
We still have the linker fail to generate a bin file from the elf file, still works perfectly if done using a subsequent call to esptool.py. If I understood just where the linker gets its instructions from, I'd disable that call, lets just make the call from a build script.
Anyway, I'll update the wiki with this information, recommend people use 5.5.1 and see what else can be done there. I think I will advise people to move the esp-idf-snapshot up to ESP_HOME. Leaving it down in the (c code) hello_world directory feels a bit strange to me.
I'd still like to test out the esp32s3 I have now but not sure when !
Davo