Nevermind that last question. The SidebarController can expand and collapse which is why your code is needed also is not needed for the HeaderController. Unfortunately, this doesn't entirely fix the issue. In my case, the app I am including the widget in has another widget in the Sidebar which is open by default.
The problem I'm having is a little more subtle. I actually have two custom widgets in my app both which have custom feature actions. The first call to triggerWidgetOpen seems to work fine. Any existing widget which is open gets replaced with the widget being opened by the custom feature action. However, if another custom widget/feature action is invoked, it almost seems the second widget is being opened on top of the first widget and so if you invoke the first custom widget/feature action again, since the widget it is opening is already open but sitting underneath another widget, nothing happens, i.e. the widget isn't shown.
Seems like there needs to be a call to some method on the Controller widget to tell it which widget to show. Hopefully, this explanation isn't too confusing!