There are many issues that can make thinking rationally harder, some of which are very hard to reproduce in controlled circumstances, and being better at dealing with one issue does not necessarily make you any better at dealing with the others. Almost anything that we would describe as stressful impairs rationality. To your list of circumstances, I would add:
A few of these are easy to test; for example, you could take a written test once while rested, once while tired, once in a noisy room, once with a short time limit, etc. However, it doesn't seem likely that these tests would generalize well, and many of the obvious strategies for training seem unlikely to generalize well either.
I said "under time" to try to factor these things out, but I just edited the post to say "by attending" to better describe them. Yes focusing more attention on a problem lets you do better, and more time, less fatigue, and fewer distractions let you focus more attention. But these attention factors seem importantly different from the other factors I listed.
(Epistemic) rationality has two major components:
Attending takes time, energy, quiet, etc. Circumstances where human rationality degrades include when:
It seems relatively easy to test rationality smarts; repeatedly give folks info and time to work new problems and measure their accuracy, calibration, etc. And I have an idea for testing for rationality toughness: compare performance on info-similar pairs of good/bad-circumstance problems.
For example, assume people are better at evaluating if a spouse is cheating when considering an acquaintance in their social circle, relative to a stranger or their own spouse. If so, we could pose them a pair of problems with very similar info structure, one with an easy spouse and one with a hard spouse. The closeness of their response in these two cases would then be a measure of their rationality toughness.
Of course this test may fail if the similarity is too obvious, or the pair are asked too closely in time. But maybe we don't even need to ask the same person the two questions; perhaps we could usefully compare someone's answer on a hard question to answers from a pool of similar people on matched easy questions.
While I haven't thought this through, it already suggests a training technique: consider matched hard/easy circumstance problems and compare your answers, separated by enough time that you forget most of your previous analysis.