I posted a potential solution to this over at Mathematica.SE. For now, I won't re-post it here as it may change, depending on feedback. If you are interested in the topic, do check there.