Hmm. What you see is what i'd expect to happen, based on how StoryQ was written. But I can see how as a user, you wouldn't expect that!
Basically, the string description is recorded when the story is constructed, rather than executed.
My recommendation is to only really pass literals into each step method: otherwise it will be very hard for someone else to understand what the test is actually doing (as well as exposing this bug). Developers would struggle, but business stakeholders (whom
we have, beleive it or not, had looking at our test code) would have no chance.
If you were using cucumber or specflow, you'd be building the story in plaintext, so you'd be forced to pass parameters in directly, not as variables.
One exception to this is if you are using data-driven or parameterised unit tests - you'd pass "testContext.DataRow.Field<DateTime>("TheDate")" in for example - which wouldn't exhibit this bug...
Maybe you could post your actual test here if you think it's still a valid use?