Later on I did manage to collect 4 souls (actually I had 5 at one point but had to trap myself to get the 5th). Then I got stuck at - couldn't move.
May have been browser cache issue of some sort. I was able to reproduce it, but only once. Then I restarted the browser to take some screenshots. Now the level to the left behaves differently. Sounds like "out of bounds", as you said. I can still sort of move the character to that location - it goes off the screen and I'm stalled until I hit page-reload. But a) it doesn't load the map in the screenshot, and b) page-reload resets the entire map, including character position, to what they were when I first entered it.
Kinda weird that I was able to reproduce it once - PC was off overnight. But I'm clueless re cache behavior. Maybe I refreshed the page whilst taking screenshots - at the time I wasn't suspecting a cache issue and wasn't paying much attention to that.
I see it now - both the buggy level and the level above it (if accessed from the bottom entrance, i.e. from buggy level) have the ability to exit the right side of map into either a non-existent level ("harmless" game freeze) or into another level in a location without any solid ground, which leads to falling out of bounds into non-existent level even after page reload (because player location is saved from previous map change).
I stayed up too late working on that buggy level, obviously. I fixed up those levels to protect future players.