The oscillations and control functions can be added via UDF. Not sure about expressions simply because of the complexity of the maths and potential need for retaining a previous time step value(s). It's not an easy option so tread carefully.
For a gradual change you'd need to add a more complex set of IF statements, so you'd finish up with a max, min and intermediate. Intermediate would be a function of temperature in some way. Again not so easy, but probably easier than a UDF. Nesting three options into an expression might be a fun exercise though, so, again it may need a UDF. It'll be easier than the full control system though.
Expressions are fairly new to Fluent (3-ish main releases) so what can't be done now may be available next time. That does make support more complex as we're always supporting 2-5 older versions, current release and often testing next release. Not forgetting input into the future plan.....