I don't know which method would work best. I think you'd have to see which is easier for you to do. I'd probably go for the two separate widgets each with custom templates and a condition around that template:
Template 1:
HTML Code:
<vb:if condition="$show['guest']">stuff</vb:if>
and Template 2:
HTML Code:
<vb:if condition="$show['member'] AND !is_member_of($bbuserinfo, x)">stuff</vb:if>
I would guess that would work but I've never tried something like that.