Not an answer to your current problem, but you should set the Minimum Free Space setting for the pool to avoid it filling up completely which tends to make it misbehave (especially when using btrfs).
I 'think' you could get past the current problem by simply unassigning the pool (for the time being) and starting the array but you may want to wait for someone else to chime in (e.g. @JorgeB) to see what they think. You would then need to take action to try and recover the pool contents and I am not sure what is the best way to go about this.