Yes, I know about this problem, I’m thinking about solving it or changing the concept.
If you have a day counter (Counting how many days have passed since the player has been playing or even tracking what day it is), you can set it to allow any of the girls to come in at a random time, perhaps twice a day.
I've done something similar to this... instead of making it a static time to where the player can plan to get caught by someone entering the bathroom, you can make it dynamic. You could even make it possible to happen randomly only when the girl is home.
If girl_home = true, if girl_BR_max = false, then generate RNG 0-1
If RNG = 1, BR occupiedByGirl = true, then "MC cannot use BR", girl_BR_used =+ 1
If RNG = 0, BR occupiedByGirl = false, then occupiedByMC = true
If RNG = 1, BR occupiedByMC = true, then "MC gets walked in on", girl_BR_used =+ 1
If RNG = 0, BR occupiedByMC = false, then "MC uses BR unmolested"
If girl_BR_used = #, girl_BR_max = true
Something to that effect and can be done every time the MC attempts to use the bathroom. Giving plenty of opportunities for the MC to encounter any of the girls while they are in the bathroom or while the MC is in the bathroom, but not every time. Or at least until the maximum is reached and there won't be an event of the MC encountering any of the girls in any situation.
This would require additional variables, yes... not many players like RNG, but in this instance it's not there to calculate stats but instances of encounters. Course, you'd still have to figure out why the menu buttons are disabling and softlocking players.