This is a hard problem. Manipulating the passage of time is a common staple in games, and even more common is doing it based on something the player is doing. It's straightforward in a 1-player context - the hard part is dealing with more than 1 player.
My only solution is localized time. If a player cannot perceive the effects manipulated time passage for a localized area, then they don't have to meet the conditions for it. This is what Minecraft does - only players in the overworld have to be sleeping together to pass time to day; players in other dimensions are not counted.
In my case I won't ever have the sky visible, so I'll instead need to decide on a per-player radius for time passage manipulation, and all players in another player's radius count toward the same localized time.
I don't really play games where time is an issue, so I can't comment on the main question.
Though I do have to scratch my head as to why you'd ever put the player in a position where they'd want to have time pass without anything interesting happening.
Though I do have to scratch my head as to why you'd ever put the player in a position where they'd want to have time pass without anything interesting happening.
I know that community brainstormed some ideas for such a problem, though time control is player controlled which doesn't seem what you'd need.
As per the drugs/bad mental health, you could do pulses, where everything slows down and then speeds up to catch up. So there'd be a 4-5 second slow motion for the user but everything would still be moving in real time, and then add some sort of motion blur to the location it actually is at now.
I play call of duty, which is a first person shooter. I play online, and when I die, I am given a look at my opponents camera while he/she killed me. I watch these 'kill cams' and have noticed something interesting.
Say I creep around a corner, see an enemy, shoot, but then get killed. In the killcam, the opponent might never have experienced me shooting at all. This means that I am a fraction of a second behind my game in his/her game. Likewise, in my game, I'm seeing and shooting at someone in a place where he/she used to be. In fact, it takes that same fraction of time for my game to confirm that I hit the opponent. The slower my internet connection, the longer the delay.
So, to think about your problem:
Say I can slow down 1 second of game time into 5 seconds of real life time. That means that my game should be 4 seconds ahead of yours ( that missing second being the 1 second of your perceived bullet time ).
When you shoot at me, and I initiate bullet time, you still have those 4 seconds of game that I have played to experience, then you see me move very fast for a second. Now your game experience is in sync with mine, and in order for me to use bullet time again, you need to smoothly drop 4 seconds behind again.
I'm not sure that it will work out smoothly though. When I'm playing call of duty, the difference of half a second or so can be too much to feel like the game is fair at all, I get killed by things that aren't even in my game yet.
Simpler solution would be to slow down the bullets for everybody when someone initiates bullet time.