Instead of new Token(() => value), since the use case for using lazy evaluation is only for synthesis, maybe what we can do is actually provide a method in Construct, which will also give us the ability to associate the token with the construct:
new QueueResource(this, 'Resource', {
visibilityTimeout: this.lazyEval(() => 122)
});
See #712 (comment)