I did something similar for myself based on TagTime [1] from the same folks who made beeminder.
I'd suggest not enforcing a minimum spacing between samplings. The minimum spacing tends to push samplings towards the ends and center of the day. It also gives the randomness memory. I noticed when I was sampling myself, my behavior would subtly change after a sampling when I knew I wouldn't be sampled for a little while. Although, I don't think this would cause a meaningful problem in your context.
Thanks for the writeup! Very interesting.