text: Title: server_onupdate don't allow valid types
  Body: ### Ensure stubs packages are not installed
  
  - [X] No sqlalchemy stub packages is installed (both `sqlalchemy-stubs` and `sqlalchemy2-stubs` are not compatible with v2)
  
  ### Verify if the api is typed
  
  - [X] The api is not in a module listed in [#6810](https://github.com/sqlalchemy/sqlalchemy/issues/6810) so it should pass type checking
  
  ### Describe the typing issue
  
  When defining `server_onupdate=<...>` in `Column()` or in `mapped_column()`, valid types are `FetchedValue`, `str`, `ClauseElement`, `TextClause`.
  
  However, the kwarg is typed as `Optional[FetchedValue]` in both `Column()` and `mapped_column()`.
  
  ### To Reproduce
  
  ```python
  from sqlalchemy import Column, DateTime, Table, func, text
  from sqlalchemy.orm import DeclarativeBase
  
  class Base(DeclarativeBase):
      pass
  
  my_table = Table(
      "my_table",
      Base.metadata,
      Column("updated_at1", DateTime, server_onupdate=func.now()),
      Column("updated_at2", DateTime, server_onupdate=text("NOW")),
      Column("updated_at3", DateTime, server_onupdate="NOW"),
  )
  ```
  
  
  ### Error
  
  ```
  main.py:12: error: Argument "server_onupdate" to "Column" has incompatible type "now"; expected "FetchedValue | None"  [arg-type]
  main.py:13: error: Argument "server_onupdate" to "Column" has incompatible type "TextClause"; expected "FetchedValue | None"  [arg-type]
  main.py:14: error: Argument "server_onupdate" to "Column" has incompatible type "str"; expected "FetchedValue | None"  [arg-type]
  Found 3 errors in 1 file (checked 1 source file)
  ``` 
  
  ### Versions
  
  - OS: Arch Linux
  - Python: 3.12.3
  - SQLAlchemy: 2.0.31
  - Type checker: mypy 1.10.1
  
  
  ### Additional context
  
  _No response_