You've found several issue here, all around what I would call "sparse striped objects".
Imagine that you write a couple of bytes at the start of a striped object and another couple 1GB further. I actually do exactly that in one of the tests now. What you will get is a striping into 2 objects, number 0 and e.g. 0xee. All the others are empty and not even created.
Then as you mention, truncating, or reading stripes from object 1 will return ENOENT.
I've now fixed the reading (not yet pushed, I need more testing) but I'm not sure what to do for truncation when I have no size.