access:conditional=no @ (dusk-07:00) is perfectly valid and understood. It is unclear, though, if bicycle=* would override an access:conditional outcome of no. If riding your bike is also forbidden at that time, I would add another condition for that as well.
More precisely, the private use is always available. The night-time restrictions are for the public, who are only allowed access by foot or by bicycle (and by permission, not as of right).
If so, you want to use private for the conditional values, not no because that implies that even owners of this street are forbidden from using this street.
My understanding is that access tags are applied starting with the most general and moving to the most specific, thus access:conditional=* does not overide more specific access tags.
The opposite actually: If you have an access=yes followed by foot=no it means that everyone is able to access this highway except for pedestrians since foot takes a higher priority than access.