prasetyaid 1 and 2 are not easy to do. There's the PHP router, Mithril router, any many places where it's hard-coded I believe. No effort has been made to make this extendable, so you'll likely have to fork core and other core extensions to edit them.
3 is not possible unless you rework the logic for slugs to be unique, and it also requires modifying the API endpoints to look by slug instead of ID. Discussion IDs are currently used for SEO purpose only and can't be used as identifiers without an important rewrite.
If you would like to help improve the extensibility in core, we welcome pull requests.
If you are doing that for migration purposes, consider using HTTP 301 redirects via htaccess or an extension like https://github.com/migratetoflarum/vbulletin-redirects