If you have already configured the block to use a shield shouldn't the #default_value be ($this->options['shield']) with $default_shield as the fallback?  Or am I miss-reading?