How does the SAMD21 behave when it runs out of RAM?

You would still need either some sort of OS managing the stacks or a compiler that is aware of your needs to allow for a gap area between the heap and stack so that a write in that area triggers the access fault. That somewhat defeat the flexibility of having a dynamic region where the lower/upper bounds are not set in stone