Hi HannesNZ,
Currently, there is no "neat" or official way to handle both. You can just do either. But there are some work arounds that some Google extension product have done.
First of all, set it up to show the popup. And within your pageAction popup, you can have the initialization code to be something like this:
Page Action Popup:
function init() {
  if (getClickBehaviour() == 'popup')
    handlePopup();
  else
    openPage();
}
function getClickBehaviour() {
  return localStorage['CLICK_BEHAVIOR'] || 'popup';
}
function openPage() {
    chrome.tabs.create({url: 'http://google.ca'});
    window.close();
  });
}
init();
Then you can let your options, set the click behavior. If you want different behaviors on each click, you can do that too.
As you noticed, we are closing the popup right after for the "default" behavior that we don't want the popup to show. That is currently the only way to implement different behaviors.