Unlocking heterogeneity of node activation in Boolean networks through dynamical programming