To reply to your queries:
1. Not sure what you mean exactly, but any enhancements on the SDKs are managed by Engineering. If you mean, creating a custom app that uses our SDKs, then you can do pretty much anything you want with them.
2. Our Mobile SDKs are limited with regards to meeting functionality, meetings functionality is pretty basic throughout the mobile SDKs (at least, compared to the Browser SDK) however it is still possible to join meetings through it. You can check out the Phone interface within Android SDK for example, iOS SDK would have a similar one too.
3. The widget uses the Browser SDk for its functionality, so it depends what you want to do. If it's a lightweight functionality you want, the widget will probably suffice. If you're looking to do more, then you can just use the Browser SDK.
4. This question isn't really making sense to me, are you asking whether it's possible to join a meeting after it's already ended? If this is what you ask, then it depends. If you're a host you can simply restart that meeting, but if you were only a participant then you may not be able to restart it