In 1.8, the csrf_expiration value was "misused" to determine whether or not a token must be rotated. A value of 0, like in your config, caused immediate expiration of the token, and triggered a rotation.
In 1.9/dev, this misuse is corrected. There is a new config key "csrf_rotate" which is set to true by default, causing a rorate after every request. If it is set to false, it only rotates after expiration.
An expiration of 0 now means "do not expire until end of session", the normal behaviour of 0 in an expiration value.
I do however think there is in issue with the code. Can you change line 360 in fuel/core/security.php to
if ($rotate === false or static::$csrf_old_token !== false)
The fact that is the same with this config isn't good, and I think I have found an omission in the last commit that has caused that. I'm testing now, if it turns out it works, I'll push it.
But I think you have a misunderstanding about what a CSRF token is. It is not a back-button protection.
It might work if you don't use the on-submit javascript function (which means you can't have multiple tabs open), but it will not work otherwise, as when you submit the form after using "back", the script will just pull the valid token from the cookie and insert it in the form. So it will check out ok again...