You could use the OnHyperlinkClick to open the profession frame instead of using a separate button:
Lua Code:
frame:SetScript("OnHyperlinkClick", function(self) -- if not using a seperate button
ProfessionsUtil.OpenProfessionFrameToRecipe(frame.ID) -- frame.ID being where you stored the recipe ID for clicking
end)
Updated my original example to include clicking on the hyperlink also opens the profession frame (and waiting for a link if the recipe is not cached)